首页 > 解决方案 > 如何从具有附加列的新数据框中更新数据框?

问题描述

pandas.DataFrame.update的帮助页面中,他们有以下示例使用 new_df 更新 df:

df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [400, 500, 600]})
new_df = pd.DataFrame({'B': [4, 5, 6],
                       'C': [7, 8, 9]})
df.update(new_df)
df
   A  B
0  1  4
1  2  5
2  3  6

使用 update 命令让“C”在 df 中显示为新列的最佳方法是什么?我无法弄清楚,但如果我使用以下任一方法在 df 中创建新列:

df['C'] = np.NaN
df['C'] = 0

这似乎填充了它,但我想知道在 df.update 中是否有更好的方法或某种方法来做到这一点。

标签: pythonpandasdataframe

解决方案


df.update对齐索引。您也可以使用df.assign覆盖以前的值并添加新列。

df.assign(**new_df)

   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

推荐阅读