ren*_*kre 11 python dataframe pandas
我有几个数据框。
数据框1
Feature Coeff
a 0.5
b 0.3
c 0.35
d 0.2
Run Code Online (Sandbox Code Playgroud)
数据框2
Feature Coeff
a 0.7
b 0.2
y 0.75
x 0.1
Run Code Online (Sandbox Code Playgroud)
我想合并此数据框并获取以下数据:
Feature | DF1 | DF2
a 1 1
b 1 1
c 1 0
d 1 0
y 0 1
x 0 1
Run Code Online (Sandbox Code Playgroud)
我知道我可以做一个,outer merge但我不知道如何从那里移动来获得上面介绍的最终数据帧。有任何想法吗?
use*_*203 11
使用concat+get_dummies
u = pd.concat([df1, df2], axis=0, keys=['DF1', 'DF2'])
pd.get_dummies(u.Feature).sum(level=0).T
Run Code Online (Sandbox Code Playgroud)
DF1 DF2
a 1 1
b 1 1
c 1 0
d 1 0
x 0 1
y 0 1
Run Code Online (Sandbox Code Playgroud)
您可以merge与with series.str.get_dummies()一起使用以实现此目的:
m=df1[['Feature']].merge(df2[['Feature']],how='outer',indicator=True)
Run Code Online (Sandbox Code Playgroud)
d={'both':'DF1,DF2','left_only':'DF1','right_only':'DF2'}
m=m.assign(_merge=m._merge.map(d))
m[['Feature']].join(m._merge.str.get_dummies(','))
Run Code Online (Sandbox Code Playgroud)
Feature DF1 DF2
0 a 1 1
1 b 1 1
2 c 1 0
3 d 1 0
4 y 0 1
5 x 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
413 次 |
| 最近记录: |