Python pandas:根据已存在的列值添加新列,并将新列的值设置为1或0

tktktk0711

我有一个名为 df 的数据框,如下所示:

ticker        class_n  
  1              a
  2              b
  3              c
  4              d
  5              e
  6              f
  7              a
  8              b
  ............................

我想向此数据框中添加新列,新列名称是 class_n 的唯一类别的值(我的意思是不重复 class_n)。此外,新列的值为 1(如果 class_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

df.join(pd.get_dummies(df.class_n))

   ticker class_n  a  b  c  d  e  f
0       1       a  1  0  0  0  0  0
1       2       b  0  1  0  0  0  0
2       3       c  0  0  1  0  0  0
3       4       d  0  0  0  1  0  0
4       5       e  0  0  0  0  1  0
5       6       f  0  0  0  0  0  1
6       7       a  1  0  0  0  0  0
7       8       b  0  1  0  0  0  0

或者同样的事情,但手动多一点

f, u = pd.factorize(df.class_n.values)
d = pd.DataFrame(np.eye(u.size, dtype=int)[f], df.index, u)
df.join(d)

   ticker class_n  a  b  c  d  e  f
0       1       a  1  0  0  0  0  0
1       2       b  0  1  0  0  0  0
2       3       c  0  0  1  0  0  0
3       4       d  0  0  0  1  0  0
4       5       e  0  0  0  0  1  0
5       6       f  0  0  0  0  0  1
6       7       a  1  0  0  0  0  0
7       8       b  0  1  0  0  0  0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据另一列pandas python的值在python中添加新列

来自分类Dev

python / pandas-在单个DataFrame列中计算唯一值并将计数显示为新列

来自分类Dev

(Python)根据现有列的值创建新列

来自分类Dev

Python根据其他两列添加具有重复值的新列

来自分类Dev

根据其他列中的值在python 3(pandas)数据框中创建新列

来自分类Dev

Python Pandas:如果条件为true,则将现有列值放入新列中

来自分类Dev

如何根据 Python 数据框中现有的值向新列添加值?

来自分类Dev

根据累积值将非累积计算为新列(Python)

来自分类Dev

Python Pandas:根据另一个数据框的类别值创建新列

来自分类Dev

如果行值是串联的,python pandas数据框将创建带有标签(0或1)的新列

来自分类Dev

如何使用if语句为python中的新列分配值?

来自分类Dev

使用pandas根据先前的值添加列(python)

来自分类Dev

Python Pandas,一个dict列,为每个键/值对创建新行

来自分类Dev

Python Pandas - 检查子字符串包含并将新列设置为子字符串

来自分类Dev

使用python词典中的值的新pandas dataframe列

来自分类Dev

python(pandas)基于来自不同行的值创建新列

来自分类Dev

python pandas:根据列表中列的另一个值设置列的值

来自分类Dev

在Pandas DataFrame Python中添加新列

来自分类Dev

Python Pandas在现有列的基础上添加新列-“值的长度与索引的长度不匹配”

来自分类Dev

Python Pandas根据索引值创建列

来自分类Dev

根据行值,Python,Pandas选择列

来自分类Dev

根据条件使用python中另一列的值创建新列

来自分类Dev

如何根据条件使用python返回新列中的列值

来自分类Dev

Python groupby - 根据其他列中的值创建一个新列

来自分类Dev

python pandas - 根据连接数据帧的索引和/或 ID 设置列的列值

来自分类Dev

python2.7 数据框:从现有列值添加新列

来自分类Dev

如何从列中获取特定值并在 Python/Panda 中添加为新列?

来自分类Dev

Python根据另一列的值(通过数字索引确定)将值分配给新列

来自分类Dev

Python Dataframe - 根据现有列值的长度创建一个具有值的新列

Related 相关文章

  1. 1

    根据另一列pandas python的值在python中添加新列

  2. 2

    python / pandas-在单个DataFrame列中计算唯一值并将计数显示为新列

  3. 3

    (Python)根据现有列的值创建新列

  4. 4

    Python根据其他两列添加具有重复值的新列

  5. 5

    根据其他列中的值在python 3(pandas)数据框中创建新列

  6. 6

    Python Pandas:如果条件为true,则将现有列值放入新列中

  7. 7

    如何根据 Python 数据框中现有的值向新列添加值?

  8. 8

    根据累积值将非累积计算为新列(Python)

  9. 9

    Python Pandas:根据另一个数据框的类别值创建新列

  10. 10

    如果行值是串联的,python pandas数据框将创建带有标签(0或1)的新列

  11. 11

    如何使用if语句为python中的新列分配值?

  12. 12

    使用pandas根据先前的值添加列(python)

  13. 13

    Python Pandas,一个dict列,为每个键/值对创建新行

  14. 14

    Python Pandas - 检查子字符串包含并将新列设置为子字符串

  15. 15

    使用python词典中的值的新pandas dataframe列

  16. 16

    python(pandas)基于来自不同行的值创建新列

  17. 17

    python pandas:根据列表中列的另一个值设置列的值

  18. 18

    在Pandas DataFrame Python中添加新列

  19. 19

    Python Pandas在现有列的基础上添加新列-“值的长度与索引的长度不匹配”

  20. 20

    Python Pandas根据索引值创建列

  21. 21

    根据行值,Python,Pandas选择列

  22. 22

    根据条件使用python中另一列的值创建新列

  23. 23

    如何根据条件使用python返回新列中的列值

  24. 24

    Python groupby - 根据其他列中的值创建一个新列

  25. 25

    python pandas - 根据连接数据帧的索引和/或 ID 设置列的列值

  26. 26

    python2.7 数据框:从现有列值添加新列

  27. 27

    如何从列中获取特定值并在 Python/Panda 中添加为新列?

  28. 28

    Python根据另一列的值(通过数字索引确定)将值分配给新列

  29. 29

    Python Dataframe - 根据现有列值的长度创建一个具有值的新列

热门标签

归档