假设我有两个dataframe,df1,df2,如下所示。df1:
   A   B    C
0  4  40  300
1  2  70  900
2  5  80  900和另一个dataframe df2:
   A  D   E
0  1  0  00
1  2  0  00
2  3  0  00
3  4  0  00
4  5  0  00 
5  6  0  00现在,我希望通过A列匹配的条件将df1'C‘的值赋值给df2'E’。结果应该是
   A  D   E
0  1  0  00
1  2  0  900
2  3  0  00
3  4  0  300
4  5  0  900 
5  6  0  00我该怎么做?
注意:我在寻找类似update df2的东西,而不是合并,因为我必须在一个循环中多次这样做。
发布于 2017-06-18 11:07:16
可以使用合并函数。
df2 =pd.merge(df2,df1,on='A',how='left')
df2 = df2.fillna(value='00')
df2 = df2[['A','D','C']].rename(columns={'C': 'E'})
print(df2)
   A  D    E
0  1  0   00
1  2  0  900
2  3  0   00
3  4  0  300
4  5  0  900
5  6  0   00发布于 2017-06-18 11:31:10
您可以使用pd.merge()
pd.merge(df2[['A','D']],df1[['A']].assign(E=df1.C),on='A',how='left').fillna('00')
Out[269]: 
   A  D    E
0  1  0   00
1  2  0  900
2  3  0   00
3  4  0  300
4  5  0  900
5  6  0   00或者可以使用df.update()
df2_new = df2.set_index('A')
df2_new.update(df1.assign(E=df1.C).set_index('A'))
df2_new.reset_index()
Out[254]: 
   A  D    E
0  1  0   00
1  2  0  900
2  3  0   00
3  4  0  300
4  5  0  900
5  6  0   00https://stackoverflow.com/questions/44614251
复制相似问题