想像一下一个人想做一个可以接受两种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/