Python 对除当前值以外的所有值执行交叉转换
我有以下数据集:Python 对除当前值以外的所有值执行交叉转换,python,pandas,python-2.7,Python,Pandas,Python 2.7,我有以下数据集: ID Animal 1 Dog 1 Cat 1 Turtle 2 Turkey 2 Dog 2 Cat 3 Tiger 3 Antelope 我的目标是创建一个交叉表,但是我想把ID和动物的每一个组合都当作一个唯一的ID,这样我就可以得到下面的输出 不幸的是,我使用的是python2.7,因此它必须在那里兼容。尝试。获取虚拟对象,并将结果连接到数据帧 df.join(pd.get_dummies(df.Animal)) ID
ID Animal
1 Dog
1 Cat
1 Turtle
2 Turkey
2 Dog
2 Cat
3 Tiger
3 Antelope
我的目标是创建一个交叉表,但是我想把ID和动物的每一个组合都当作一个唯一的ID,这样我就可以得到下面的输出
不幸的是,我使用的是python2.7,因此它必须在那里兼容。尝试
。获取虚拟对象,并将结果连接到数据帧
df.join(pd.get_dummies(df.Animal))
ID Animal Antelope Cat Dog Tiger Turkey Turtle
0 1 Dog 0 0 1 0 0 0
1 1 Cat 0 1 0 0 0 0
2 1 Turtle 0 0 0 0 0 1
3 2 Turkey 0 0 0 0 1 0
4 2 Dog 0 0 1 0 0 0
5 2 Cat 0 1 0 0 0 0
6 3 Tiger 0 0 0 1 0 0
7 3 Antelope 1 0 0 0 0 0
使用pivot,然后用concat填充
df = pd.concat([df,df.pivot(columns='animal',values='animal').notnull().astype('int').fillna(0)],axis=1)
print(df)