想像一下一个人想做一个可以接受两种DataFrame的函数-带“值”列和不带“列”。 (也就是说,这是来自不同来源的 Assets 数据,某些来源没有提供有关值(value)的信息。)
函数foo应该根据数据帧运行不同的过程,例如,将"Value"复制到新列“B”或使用1添加新列“B”。玩具示例如下。

import pandas as pd

df1 = pd.DataFrame({"A":["one", "two", "three"]})
df2 = pd.DataFrame({"A":["one", "two", "three"], "Value":[1, 2, 3]})
KeyError: 'Value'的情况下,处理df1的最佳方法是什么?
def foo(df, col_name="Value"):

    <if col_name exists>
        df["B"] = df[col_name]
    <else>
        df["B"] = 1
    return df

最佳答案

尝试:

df['B'] = df.get('Value', 1)
或同等
df['B'] = df['Value'] if 'Value' in df else 1

关于python - Pandas DataFrame列的KeyError异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/65580516/

10-12 17:50
查看更多