suming 2个dataframes大熊猫蟒蛇
我有两个dataframessuming 2个dataframes大熊猫蟒蛇
colA colB amount1 amount2 key
maindf = xx yy 12 1 55_ab
qs rr 13 2 14_rs
colA colB amount1 amount2 key
df = dd tt 10 5 55_ab
我要添加场amount1和数据帧DF的量2的值maindf根据现场键,得到以下
colA colB amount1 amount2 key
maindf = xx yy 22 6 55_ab
qs rr 13 2 14_rs
如何使用熊猫 - 合并df和创建新的列/列如下所述(只是总结两列) join - left = maindf,right = df,how ='left',left_on ='key',right_on ='钥匙'
import pandas as pd
df = pd.DataFrame({'$a':[1,2], '$b': [10,20]}) # creating fake df
df2 = pd.DataFrame({'$a':[1,2], '$b': [10,20]}
dfMerge = pd.merge(left=df, right=df2, how='left', left_on='$a', right_on='$a')
dfMerge["SUM"] = dfMergeTemp["$b_x"] + dfMergeTemp["$b_y"]
# print(dfMergeTemp)
你的情况(也许这将是有意义的重命名列不混淆发生了什么)
mergedDf = pd.merge(left = maindf, right = df, how = 'left', left_on='key', right_on = 'key')
我不想额外的列。 –
无论如何,第二个数据框的值直接加到maindataframe的值上吗? –
您可以删除任何其他列或只选择您感兴趣的列。所以结果会如你所愿,但仍然很简单。 –
这个怎么样?
# make main df
main = pd.DataFrame({'ColA' : ['xx', 'qs'],
'ColB' : ['yy', 'rr'],
'amount1' : [12, 13],
'amount2' : [1, 2],
'key' : ['55_ab', '14_rs']})
# make other df
df = pd.DataFrame({'ColA' : ['dd'],
'ColB' : ['tt'],
'amount1' : [10],
'amount2' : [5],
'key' : ['55_ab']})
# merge dataframes
df1 = main.merge(df,
how = 'left',
left_on = 'key',
right_on = 'key').fillna(0)
# sum amount1
df1.insert(df1.shape[1],
'amount1',
df1.amount1_x + df1.amount1_y)
# sum amount2
df1.insert(df1.shape[1],
'amount2',
df1.amount2_x + df1.amount2_y)
# drop unneeded columns
df1.drop(['amount1_x',
'amount2_x',
'ColA_y',
'ColB_y',
'amount1_y',
'amount2_y'],
axis = 1,
inplace = True)
是否有更简单的事实,我的数据帧看起来更像 –
它有20列的大得多,有些字段的名称为'pnb 2016' –
请提供您的实际数据框示例(维度和全部)。如果您没有提供正确的示例数据,则无法为您提供答案。 –
Pôle Libellé entité PNB N-1 PNB N initial Key
IBFS PJSC ROSBANK -200 0 zz_t55
IBFS PJSC ROSBANK 0 1500 bb_y44
IBFS PJSC ROSBANK 1000 2000 az_89
IBFS PJSC ROSBANK 5000 -250 rr_14
所以这是maindf 比方说,还有更多的列,我不能完成发布。 所以我想要从另一个数据框中总结值有相同的关键字'PNB N-1'和'PNB N初始'
谢谢更正 –