从虚拟到列表 pandas
From Dummy to a List pandas
我有一个包含许多虚拟变量的数据框。我不需要很多不同的虚拟列,而只需要一列,并且每一行都需要包含一个字符串,虚拟变量只等于 1。
index a b c
0 1 1 1
1 0 0 1
输出:
index dummies
0 ['a','b','c']
1 ['c']
dummies = df.apply(lambda x: [col for col in df.columns if x[col] == 1], axis=1)
可以堆叠使用groupby:
df.where(df.eq(1)).stack().reset_index(level=1).groupby(level=0)['level_1'].agg(list)
输出:
0 [a, b, c]
1 [c]
Name: level_1, dtype: object
我有一个包含许多虚拟变量的数据框。我不需要很多不同的虚拟列,而只需要一列,并且每一行都需要包含一个字符串,虚拟变量只等于 1。
index a b c
0 1 1 1
1 0 0 1
输出:
index dummies
0 ['a','b','c']
1 ['c']
dummies = df.apply(lambda x: [col for col in df.columns if x[col] == 1], axis=1)
可以堆叠使用groupby:
df.where(df.eq(1)).stack().reset_index(level=1).groupby(level=0)['level_1'].agg(list)
输出:
0 [a, b, c]
1 [c]
Name: level_1, dtype: object