python - 重塑熊猫df:将值行转换为布尔矩阵
问题描述
有一个熊猫数据框:
id, key
1, A
1, B
1, B
1, C
2, C
我希望它看起来像这样(其中 1/0 是数据中的真/假外观):
id, A, B, C
1, 1, 1, 1
2, 0, 0, 1
解决方案
drop_duplicates
与groupby
,size
和一起使用unstack
:
df = df.drop_duplicates().groupby(['id', 'key']).size().unstack(fill_value=0)
print (df)
key A B C
id
1 1 1 1
2 0 0 1
或get_dumes
with set_index
and max
by index
- if multiple1
总是返回1
:
df = pd.get_dummies(df.set_index('id')['key']).max(level=0)
print (df)
A B C
id
1 1 1 1
2 0 0 1
推荐阅读
- python - 如何遍历 3 个列表的所有组合?
- javascript - Buefy datepicker如何输出'yyyy-MM-dd'字符串?
- java - 如何使用 websocket 范围测试组件?
- c++ - 对 const 引用的右值分配和非 const 引用右值分配问题背后的原因
- c# - 如何在被调用的类中正确初始化二维数组
- python - Removing extra characters when reading csv
- java - 快速移动鼠标时相机有时会倒置
- angular - Wait for multiple http requests to finish before running a function in angular
- mysql - 与多个 AND 谓词混淆
- spring - Updating array afte doing a post request