11,877
社区成员




表一:
name point
A0 10
A1 20
A2 30
A3 40
表二
name money
A0 10
A1 10
A0 10
A1 10
现在想得到表三:
name point moneey
A0 10 20
A1 20 20
A2 30 0
A3 40 0
import pandas as pd df1 = pd.DataFrame({'name': ['A0', 'A1', 'A2', 'A3'], 'point': [10, 20, 30, 40]}) df2 = pd.DataFrame({'name': ['A0', 'A1', 'A0', 'A1'], 'money': ['10', '10', '10', '10']})
求助后面怎么做啊?谢谢
import pandas as pd
df1 = pd.DataFrame({'name': ['A0', 'A1', 'A2', 'A3'],
'point': [10, 20, 30, 40]})
df2 = pd.DataFrame({'name': ['A0', 'A1', 'A0', 'A1'],
'money': ['10', '10', '10', '10']})
df2.money=df2.money.apply(lambda x:int(x))
df2=df2.groupby(['name'])['money'].sum().to_frame().reset_index()
df=pd.concat([df1,df2['money']],axis=1).fillna(0)
df.money = df.money.apply(lambda x: int(x))
print(df)