我有一个名为df的数据帧,如下所示:
ticker class_n
1 a
2 b
3 c
4 d
5 e
6 f
7 a
8 b
............................
我想给这个数据帧添加新的列,新的列名称是类的unique category的值(我的意思是没有重复的类)。此外,新列的值为1(如果类n的值与列名相同),其他列的值为0。 例如,作为以下数据帧。我想得到新的数据帧,如下所示:
ticer class_n a b c d e f
1 a 1 0 0 0 0 0
2 b 0 1 0 0 0 0
3 c 0 0 1 0 0 0
4 d 0 0 0 1 0 0
5 e 0 0 0 0 1 0
6 f 0 0 0 0 0 1
7 a 1 0 0 0 0 0
8 b 0 1 0 0 0 0
我的代码如下:
lst_class = list(set(list(df['class_n'])))
for cla in lst_class:
df[c] = 0
df.loc[df['class_n'] is cla, cla] =1
但有一个错误:
KeyError: 'cannot use a single bool to index into setitem'
谢谢!你知道吗
使用
pd.get_dummies
或者是同样的事情,只是稍微手动一点
相关问题 更多 >
编程相关推荐