我知道这样的问题已经被问了无数种,但到目前为止我还没有找到这个问题的答案。
我已将两个 .csv 文件与 Pandas 一起加入,现在我想向新加入的 .csv 文件添加更多列,并根据已有的可用数据计算值。
但是,我不断收到此错误:
"The truth value of a is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all()."
现在,这显然似乎是我的列的数据类型(全是整数)的问题,但我还没有找到一种(有效的)方法将该列设置为整数。
这是我的代码:
import pandas
def nscap(ns):
if ns <= 13:
x = ns
elif ns > 13:
x = 13
return x
df_1 = pandas.read_csv("a.csv", sep=';', names=["DWD_ID", "NS"], header=0)
df_2 = pandas.read_csv("b.csv", sep=';', names=["VEG", "DWD_ID"], header=0)
df_joined = pandas.merge(df_1, df_2, on="DWD_ID")
df_joined["NS_Cap"] = nscap(df_joined["NS"])
If i set
df_joined["NS_Cap"] = nscap(20)
代码工作正常
我尝试过 .astype(int) 或 .to_numeric() 等函数,但除非语法错误,否则它对我不起作用。
提前致谢!