使用熊猫在数据框中创建动态列

问题描述:

如何从此熊猫数据框中创建动态列。使用熊猫在数据框中创建动态列

Name, Sex 
    a, M 
    b, F 
    c, M 
    d, F 

预期的数据帧:

Name, M, F 
a, 1, 0 
b, 0, 1 
c, 1, 0 
d, 0, 1 

我已经试过pandas.pivot(),但没有用的,可能你们提出好的建议。

使用得到的假人:

pd.concat([df['Name'], df['Sex'].str.get_dummies()], axis=1) 
Out: 
    Name F M 
0  a 0 1 
1  b 1 0 
2  c 0 1 
3  d 1 0 

df['Sex'].str.get_dummies()产生的假人:

df['Sex'].str.get_dummies() 
Out: 
    F M 
0 0 1 
1 1 0 
2 0 1 
3 1 0 

,然后你可以使用pd.concat到结果的名称列相结合。

您可以创建基于两列计数变量,然后进行旋转,这样的:

import pandas as pd 
df.groupby(["Name", "Sex"]).size().unstack(level = 1, fill_value = 0) 

# Sex F M 
#Name  
# a 0 1 
# b 1 0 
# c 0 1 
# d 1 0 

另一种选择是使用crosstabpandas

import pandas as pd 
pd.crosstab(df['Name'], df['Sex']) 

# Sex F M 
#Name  
# a 0 1 
# b 1 0 
# c 0 1 
# d 1 0