使用另一个数据框(Python)更新Dataframe值

时间:2017-03-27 22:49:42

标签: python pandas dataframe

我有一个包含1000行和50列的数据框。我有第二个数据帧,包含10行和2列。第一列是旧数据框中该列的值,第二列包含新值。

我想将原始数据框中特定列中的所有值替换为第二个数据帧中的值。

我考虑过合并concat和join,但是由于您要替换/更新特定列中的值而不是添加新列,所以它们都不会起作用。

让第一个数据帧为df1,并且必须更新某些行的列名为'old_column'

第二个较小的数据帧是df2,包含2列,'old_column','new_column'。

1 个答案:

答案 0 :(得分:0)

您想要研究pandas.Series的replace方法。

df1 = pd.DataFrame({'old_column':[1,2,3,4]})
# df1
#    old_column
# 0           1
# 1           2
# 2           3
# 3           4

df2 = pd.DataFrame({'old_column':[2,4], 'new_column':[20,40]})
# df2
#    new_column  old_column
# 0          20           2
# 1          40           4

df1.old_column.replace(df2.set_index('old_column')['new_column'], inplace=True)
# df1 after replacement
#    old_column
# 0           1
# 1          20
# 2           3
# 3          40