Python 组合两个数据帧的行
我一直在到处找,但找不到帮助 假设我有两个数据帧,如下所示 我想合并这两个数据帧以产生以下结果 请记住,Python 组合两个数据帧的行,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我一直在到处找,但找不到帮助 假设我有两个数据帧,如下所示 我想合并这两个数据帧以产生以下结果 请记住,df2始终是df的子集。 换句话说,df2中的每个值将保证出现在df的值中 这是我到目前为止所拥有的 但结果有点令人失望。 任何帮助都将不胜感激。我想你需要的是一个pd.concat后面跟着一个.drop\u duplicates() 或者您可以使用更新。设置索引后,只需使用新值更新df1中的值: df1 = df1.set_index('Values') df1 = df1.update(d
df2
始终是df
的子集。
换句话说,
df2
中的每个值将保证出现在df
的值中
这是我到目前为止所拥有的
但结果有点令人失望。任何帮助都将不胜感激。我想你需要的是一个
pd.concat
后面跟着一个.drop\u duplicates()
或者您可以使用
更新。设置索引后,只需使用新值更新df1中的值:
df1 = df1.set_index('Values')
df1 = df1.update(df2.set_index('Values')).reset_index()
你应该:
- 将df中的索引设置为值并保存结果
在临时数据帧中
- 使用df2更新它,索引也设置为值
(更新在适当位置执行)
- 重置索引以将值转换为常规列
- 可能会将此结果保存回df下
执行此操作的代码是:
wrk = df.set_index('Values')
wrk.update(df2.set_index('Values'))
df = wrk.reset_index()
结果是:
Values Count Percentage
0 Apple 14.0 0.74
1 Banana 0.0 0.00
2 Samsung 5.0 0.26
3 Orange 0.0 0.00
这回答了你的问题吗?
result = df.merge(df2, on='Values', how='left')
>>> result
Values Count_x Percentage_x Count_y Percentage_y
0 Apple 0 0 14.0 0.74
1 Banana 0 0 NaN NaN
2 Samsung 0 0 5.0 0.26
3 Orange 0 0 NaN NaN
>>> df1
Values Count Percentage
0 Apple 0 0
1 Banana 0 0
2 Samsung 0 0
3 Orange 0 0
>>> df2
Values Count Percentage
0 Apple 14 0.74
1 Samsung 5 0.26
>>> pd.concat([df1, df2]).drop_duplicates(subset='Values', keep='last')
Values Count Percentage
1 Banana 0 0.00
3 Orange 0 0.00
0 Apple 14 0.74
1 Samsung 5 0.26
df1 = df1.set_index('Values')
df1 = df1.update(df2.set_index('Values')).reset_index()
wrk = df.set_index('Values')
wrk.update(df2.set_index('Values'))
df = wrk.reset_index()
Values Count Percentage
0 Apple 14.0 0.74
1 Banana 0.0 0.00
2 Samsung 5.0 0.26
3 Orange 0.0 0.00