对除当前值之外的所有项执行交叉转换
Perform cross transformations for all except current value
我有以下数据集:
ID Animal
1 Dog
1 Cat
1 Turtle
2 Turkey
2 Dog
2 Cat
3 Tiger
3 Antelope
我的目标基本上是创建一个交叉表,但是我想将 ID 和动物的每个组合都视为唯一 ID,这样我会得到以下输出。
不幸的是,我正在使用 python2.7,所以它必须与那里兼容。
尝试 .get_dummies
,join
结果到数据帧
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)
我有以下数据集:
ID Animal
1 Dog
1 Cat
1 Turtle
2 Turkey
2 Dog
2 Cat
3 Tiger
3 Antelope
我的目标基本上是创建一个交叉表,但是我想将 ID 和动物的每个组合都视为唯一 ID,这样我会得到以下输出。
不幸的是,我正在使用 python2.7,所以它必须与那里兼容。
尝试 .get_dummies
,join
结果到数据帧
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)