使用来自另一个datafram的新数据更新python数据帧

2024-10-01 15:41:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用从不同的数据帧(df2)接收的数据更新现有的数据帧(df1)。数据帧df2可以有新列、新行或新数据。这是一个我正在努力实现的例子。你知道吗

df1型

    var1   var2    var3
a      8      4      12
b     -1     -4      -3
c      9     12      11
d     12     15       7
e      1      3      12
f      2      4       6

df2(注意,这几乎与df1相似,只是它没有var1列,有一个新的var4列,更新了var3的值,var2是相同的,并且有一个新行“months3”)。你知道吗

    var2    var3    var4
a      4      10      12 
b     -4       0       4
c     12      15       9
d     15      12       5
e      3      17       7
f      4      16       8
g      0       0       4

这应该是最新的数据框

    var1   var2    var3    var4
a      8      4      10      12 
b     -1     -4       0       4
c      9     12      15       9
d     12     15      12       5
e      1      3      17       7
f      2      4      16       8
g      0      0       0       4

完成这项任务最好的方法是什么?(我特别想添加df2中可能存在的任何额外行)。你知道吗


Tags: 数据方法例子df1df2var1var2var3
1条回答
网友
1楼 · 发布于 2024-10-01 15:41:14

由于这两个数据帧共享索引,因此组合它们的最简单方法是执行外部联接:

df = df1.join(df2, how='outer', lsuffix='_l').fillna(0).astype(int)

lsuffix用后缀'_l'标记左数据帧中的重复列。fillna用零填充左数据帧中缺少的值。最后,删除重复的列:

df = df.loc[:,~df.columns.str.endswith('_l')]

相关问题 更多 >

    热门问题