根据索引值 python 更新和追加新行
Update and append new rows based on index value python
我有两个数据帧 DF1
,DF2
它们具有相同类型的数据并共享一些索引值但不是全部
DF1
index, a, b, c
[ abc 1, 3, 6 ]
[ acb 2, 4, 5 ]
[ cab 6, 5, 2 ]
[ bac 3, 6, 2 ]
[ bca 6, 8, 3 ]
DF2
index, a, b, d
[ abc 4, 7, 3 ]
[ kde 2, 5, 8 ]
[ lat 7, 2, 6 ]
[ bac 0, 4, 4 ]
[ bca 3, 6, 8 ]
因此我想实现以下目标
1.) 根据索引匹配
将D列添加到DF1
2.) 添加 DF2
中 DF1
中不存在的索引和行
RESULT
index, a, b, c, d
[ abc 1, 3, 6, 3 ]
[ acb 2, 4, 5, - ]
[ cab 6, 5, 2, - ]
[ bac 3, 6, 2, 4 ]
[ bca 6, 8, 3, 8 ]
[ kde 2, 5, -, 8 ]
[ lat 7, 2, -, 6 ]
让我们使用 combine_first
:
创建数据:
DF1 = pd.DataFrame({'a':[1,2,6,3,6],'b':[3,4,5,6,8],'c':[6,5,2,2,3]},index=['abc','acb','cab','bac','bca'])
DF2 = pd.DataFrame({'a':[4,2,7,0,3],'b':[7,5,2,4,6],'d':[3,8,6,4,8]},index=['abc','kde','lat','bac','bca'])
df_combo = DF1.combine_first(DF2)
print(df_combo)
a b c d
abc 1.0 3.0 6.0 3.0
acb 2.0 4.0 5.0 NaN
bac 3.0 6.0 2.0 4.0
bca 6.0 8.0 3.0 8.0
cab 6.0 5.0 2.0 NaN
kde 2.0 5.0 NaN 8.0
lat 7.0 2.0 NaN 6.0
我有两个数据帧 DF1
,DF2
它们具有相同类型的数据并共享一些索引值但不是全部
DF1
index, a, b, c
[ abc 1, 3, 6 ]
[ acb 2, 4, 5 ]
[ cab 6, 5, 2 ]
[ bac 3, 6, 2 ]
[ bca 6, 8, 3 ]
DF2
index, a, b, d
[ abc 4, 7, 3 ]
[ kde 2, 5, 8 ]
[ lat 7, 2, 6 ]
[ bac 0, 4, 4 ]
[ bca 3, 6, 8 ]
因此我想实现以下目标
1.) 根据索引匹配
将D列添加到DF1
2.) 添加 DF2
中 DF1
RESULT
index, a, b, c, d
[ abc 1, 3, 6, 3 ]
[ acb 2, 4, 5, - ]
[ cab 6, 5, 2, - ]
[ bac 3, 6, 2, 4 ]
[ bca 6, 8, 3, 8 ]
[ kde 2, 5, -, 8 ]
[ lat 7, 2, -, 6 ]
让我们使用 combine_first
:
创建数据:
DF1 = pd.DataFrame({'a':[1,2,6,3,6],'b':[3,4,5,6,8],'c':[6,5,2,2,3]},index=['abc','acb','cab','bac','bca'])
DF2 = pd.DataFrame({'a':[4,2,7,0,3],'b':[7,5,2,4,6],'d':[3,8,6,4,8]},index=['abc','kde','lat','bac','bca'])
df_combo = DF1.combine_first(DF2)
print(df_combo)
a b c d
abc 1.0 3.0 6.0 3.0
acb 2.0 4.0 5.0 NaN
bac 3.0 6.0 2.0 4.0
bca 6.0 8.0 3.0 8.0
cab 6.0 5.0 2.0 NaN
kde 2.0 5.0 NaN 8.0
lat 7.0 2.0 NaN 6.0