![](/img/trans.png)
[英]pandas DataFrame: replace values in multiple columns with the value from another
[英]Replace dummy values in multiple columns with corresponding string values from another pandas dataframe
我有两个 pandas 数据帧,第二个具有我从第一个提取的虚拟值,如下所示:
df1
Col_0 Col_1 Col_2 Col_3 ...Col_27
0 A 535 C Mission
1 A 536 C Mission
2 A 541 C Fair Oaks
3 A 5455 C Valley
4 A 55 C Sunset
5 A 55 C Green
6 B West C 4th
7 B East C Bainbridge
8 C Pearl B West
9 C Main B South
10 C First C Allen
df2 = pd.get_dummies(df1[['Col_0', 'Col_2', 'Col_4', 'Col_6', 'Col_8', 'Col_10', 'Col_12', 'Col_14', 'Col_16', 'Col_18', 'Col_20', 'Col_22','Col_24', 'Col_26']])
df2
Col_0_A Col_0_B Col_0_C Col_2_B Col_2_C ...Col__26_E
0 1 0 0 0 1
1 1 0 0 0 1
2 1 0 0 0 1
3 1 0 0 0 1
4 1 0 0 0 1
5 1 0 0 0 1
6 0 1 0 0 1
7 0 1 0 0 1
8 0 0 1 1 0
9 0 0 1 1 0
10 0 0 1 0 1
df3
A B C B C ...E
0 535 Mission
1 536 Mission
2 541 Fair Oaks
3 5455 Valley
4 55 Sunset
5 55 Green
6 West 4th
7 East Bainbridge
8 Pearl West
9 Main South
10 First Allen
我需要创建另一个 dataframe、df3,其中 df2 中的 1 被 df1 Col_1、Col_3 中的值替换,依此类推。 df2 中的列具有 df1 中相应列的前缀。 Df1 上升到 Col_27,所以想象一下 df2 有 150 列和 25,000 行。 我已经做到了这一点,但不知道如何将 map 这两者结合在一起。 希望这一切都有意义。 谢谢
从一开始就创建列对
df=pd.concat([df1[x].str.get_dummies().mul(df1[y],axis=0) for x , y in zip(df1.columns[::2],df1.columns[1::2])],axis=1)
Out[135]:
A B C B C
0 535 Mission
1 536 Mission
2 541 FairOaks
3 5455 Valley
4 55 Sunset
5 55 Green
6 West 4th
7 East Bainbridge
8 Pearl West
9 Main South
10 First Allen
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.