根据另一个数据帧的ID和值在一个数据帧上设置值

问题描述 投票:0回答:1

我的数据框有问题。

第一个数据帧看起来像:


id     0    1    2    3

100    0    0    0    0
101    0    0    0    0
102    0    0    0    0
103    0    0    0    0

第二个数据帧看起来像:

id     num

100    1
100    2
100    3
101    0
101    3
102    1
103    2
103    3

并且我想将第一个数据帧中的零更改为列中以“ id”表示的特定行中的零,该特定行在第二个数据帧的“ num”列中显示为特定的“ id”。所以最后我想将第一个数据帧更改为:

id     0    1    2    3

100    0    1    1    1
101    1    0    0    1
102    0    1    0    0
103    0    0    1    1

我该怎么做?我知道我可以使用for循环(我已经准备好了),但是我的数据帧很大,大约需要4个小时才能完成。我当时正在考虑在熊猫中进行地图绘制,但没有解决方案。

最诚挚的问候

python pandas dataframe mapping bigdata
1个回答
0
投票

通过索引将get_dummiesget_dummies一起用于指标值,如果需要计数值,请使用max代替sum

max

如果可能的话,在第一个DataFrame中添加更多行或列,请添加df = pd.get_dummies(df2.set_index('id')['num']).max(level=0) print (df) 0 1 2 3 id 100 0 1 1 1 101 1 0 0 1 102 0 1 0 0 103 0 0 1 1

DataFrame.reindex
© www.soinside.com 2019 - 2024. All rights reserved.