Kri*_*lal 4 pivot-table python-3.x pandas dummy-variable pandas-groupby
我想让每个唯一值获得虚拟变量。想法是将数据框变成多标签目标。我该怎么做?
数据:
ID L2
A Firewall
A Security
B Communications
C Business
C Switches
Run Code Online (Sandbox Code Playgroud)
期望输出:
ID Firewall Security Communications Business Switches
A 1 1 0 0 0
B 0 0 1 0 0
C 0 0 0 1 1
Run Code Online (Sandbox Code Playgroud)
我试过,pd.pivot_table但它需要一个列来聚合。我也试过这个链接的答案,但它对值求和而不是仅仅变成二进制虚拟列。我将非常感谢您的帮助。非常感谢!
crosstab,然后转换为布尔值:
pd.crosstab(df['ID'],df['L2']).astype(bool)
Run Code Online (Sandbox Code Playgroud)
输出:
L2 Business Communications Firewall Security Switches
ID
A False False True True False
B False True False False False
C True False False False True
Run Code Online (Sandbox Code Playgroud)
set_index然后让我们get_dummies,因为每个 ID 中有多个重复项,所以我们sum需要level = 0
s = df.set_index('ID')['L2'].str.get_dummies().max(level=0).reset_index()
Out[175]:
ID Business Communications Firewall Security Switches
0 A 0 0 1 1 0
1 B 0 1 0 0 0
2 C 1 0 0 0 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |