![](/img/trans.png)
[英]Copying data from one pandas dataframe to other based on column value and separated by comma
[英]Copying data from one pandas dataframe to other based on column value
我有两个数据框 df1 和 df2 df1 如下所示
Index YH HE MT CU EI
0 Dot Sf Sy Lc
1 Rls Bd Sa Ta
2 Fs Ft Rg
df2 就像
Index Z1 Z2 Z3
0 YH HE
1 HE EI
2 MT CU
我想根据 df2 中与 df1 中的列名匹配的单元格值将值从 df1 复制到 df2 所以我的 df3 应该看起来像
df3
Index Z1 Z2 Z3
0 YH HE
1 Dot Sf
2 Rls Bd
3 Fs EI
4 HE CU
5 Sf Lc
6 Bd Ta
7 MT Rg
8 Sy
9 Sa
10 Ft
基本上我想根据 df2 的单元格值从 df2 中的 df1 复制列,这是 df1 中的列名
如果它仍然令人困惑,请告诉我
这涉及很多功能......
s=df2.set_index('Index').astype(object).apply(lambda x : x.map(df1.set_index('Index').to_dict('l')))
m=pd.concat([df2.set_index('Index').applymap(lambda x : [x]),s]).sort_index().sum(level=0).sum()
pd.DataFrame(m.tolist(),index=m.index).T.reindex(columns=df2.columns[1:]).fillna('')
Out[1721]:
Z1 Z2 Z3
0 YH HE
1 Dot Sf
2 Rls Bd
3 Fs
4 HE EI
5 Sf
6 Bd
7
8 MT CU
9 Sy Lc
10 Sa Ta
11 Ft Rg
为了得到你需要的
pd.DataFrame(m.tolist(),index=m.index).T.reindex(columns=df2.columns[1:]).replace('',np.nan).dropna(thresh=1,axis=0).fillna('')
Out[1724]:
Z1 Z2 Z3
0 YH HE
1 Dot Sf
2 Rls Bd
3 Fs
4 HE EI
5 Sf
6 Bd
8 MT CU
9 Sy Lc
10 Sa Ta
11 Ft Rg
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.