我的数据框有问题。
第一个数据帧看起来像:
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个小时才能完成。我当时正在考虑在熊猫中进行地图绘制,但没有解决方案。
最诚挚的问候
通过索引将get_dummies
与get_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