如何在追加的pandas数据框架中重新应用所有先前的计算



假设我有这样一个数据帧:

df = pd.DataFrame({"A":[1,2,3],"B":[4,5,6]})

我们定义一个新的列,像这样:

df["C"] = df["A"] + df["B"]

C列的值为[5, 7, 9]

但是,假设我添加了一个新行,4的值为A,7的值为B,那么C列的值将为[5, 7, 9, NaN]

如何定义当向数据框架添加内容时自动应用计算规则的列?还是有"重新计算全部"?某种函数?

Python与其他编程语言的区别在于它是解释的而不是编译的。这意味着代码是逐行执行的。

因此,在您的情况下,当您在df的末尾添加一行时,将不会有重新计算

df["C"] = df["A"] + df["B"] #executed firstly
df.loc[len(df.index)] = [4, 7, np.NaN] #executed secondly
print(df)
A    B    C
0  1.0  4.0  5.0
1  2.0  5.0  7.0
2  3.0  6.0  9.0
3  4.0  7.0  NaN

除非您通过添加与之前相同的行来强制自己重新计算:

df["C"] = df["A"] + df["B"]
df.loc[len(df.index)] = [4, 7, np.NaN]
df["C"] = df["A"] + df["B"] # <------added here to re-calculate
​
print(df)
A    B     C
0  1.0  4.0   5.0
1  2.0  5.0   7.0
2  3.0  6.0   9.0
3  4.0  7.0  11.0

如果您使用的是Jupyter之类的笔记本,则需要将df["C"] = df["A"] + df["B"]放在单独的单元格中,并在附加/添加每一行后重新运行它。

相关内容

  • 没有找到相关文章

最新更新