将非唯一列表的Pandas列转换为具有填充条目的列名称

马格努斯

我有一个数据框 data:

import pandas as pd
data = pd.DataFrame({"col1" : ['1_xy','2_xy','3_xy','4_xy','5_xy'], 
                     "col2" : [['a', 'b', 'c'], 
                               ['d', 'e', 'f', 'g', 'h', 'i'], 
                               ['a', 'j', 'k'], 
                               ['a', 'b', 'd'], 
                               ['a', 'l', 'm']]})

输出:

    col1    col2
0   1_xy    [a, b, c]
1   2_xy    [d, e, f, g, h, i]
2   3_xy    [a, j, k] 
3   4_xy    [a, b, d]
4   5_xy    [a, l, m]

我正在尝试将此数据帧转换为如下所示的数据帧:

import re
new_data = pd.DataFrame({'col1': ['1_xy','2_xy','3_xy','4_xy','5_xy'],
                     'a' : [1,0,1,1,1], 'b' : [1,0,0,1,0],
                     'c' : [1,0,0,0,0], 'd' : [0,1,0,1,0],
                     'e' : [0,1,0,0,0], 'f' : [0,1,0,0,0],
                     'g' : [0,1,0,0,0], 'h' : [0,1,0,0,0],
                     'i' : [0,1,0,0,0], 'j' : [0,0,1,0,0],
                     'k' : [0,0,1,0,0], 'l' : [0,0,0,0,1],
                     'm' : [0,0,0,0,1]})
new_data[["col1"] + [name for name in new_data.columns if not re.search("col1", name)]]

输出:

    col1    a   b   c   d   e   f   g   h   i   j   k   l   m
0   1_xy    1   1   1   0   0   0   0   0   0   0   0   0   0
1   2_xy    0   0   0   1   1   1   1   1   1   0   0   0   0
2   3_xy    1   0   0   0   0   0   0   0   0   1   1   0   0
3   4_xy    1   1   0   1   0   0   0   0   0   0   0   0   0
4   5_xy    1   0   0   0   0   0   0   0   0   0   0   1   1

也就是说,新数据框的列由在中的列表中找到的唯一值组成data.col2,并且值填充有对应于列表中条目的值。

到目前为止,我一直在玩pandas.get_dummies,但是它会创建我无法控制的虚假列。

我尝试在其上执行此操作的实际数据非常高(很多行),因此内存“可能”成为一个问题,但是欢迎所有解决方案。我应该补充一点,我已经准备好一种变通方法,该方法使用字典方法-但不幸的是,它很慢。希望任何人以前都曾遇到过这个问题,可以为您提供帮助。

我目前正在使用python v3.4和pandas v0.14.1(我知道...)

博维尔上校

您可以通过播放参数以获取正确的列名来尝试get_dummies:

df = pd.get_dummies(data.col2.apply(pd.Series), prefix='', prefix_sep='')
pd.concat([data['col1'], df], axis=1)

Out[31]:
   col1  a  d  b  e  j  l  c  d  f  k  m  g  h  i
0  1_xy  1  0  1  0  0  0  1  0  0  0  0  0  0  0
1  2_xy  0  1  0  1  0  0  0  0  1  0  0  1  1  1
2  3_xy  1  0  0  0  1  0  0  0  0  1  0  0  0  0
3  4_xy  1  0  1  0  0  0  0  1  0  0  0  0  0  0
4  5_xy  1  0  0  0  0  1  0  0  0  0  1  0  0  0

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将非唯一列表的Pandas列转换为具有已填充条目的列名称

来自分类Dev

将数据框转换为具有R中一列名称的数据框的命名列表

来自分类Dev

避免在具有非唯一列的mySQL表中重复条目

来自分类Dev

在R中将一列分成多个具有唯一列名称的变量

来自分类Dev

如何将具有一列的 Pandas Dataframe 转换为具有两列的 Pandas Dataframe?

来自分类Dev

将具有非唯一ID和列值的数据框转换为每个唯一ID的单行

来自分类Dev

将具有A和B列的数据框转换为具有唯一B值列表的As列表

来自分类Dev

如何使用Entity Framework 6更新具有唯一列的表上的条目

来自分类Dev

将具有浮点列表的pandas列转换为具有int列表的列

来自分类Dev

合并具有非唯一列的数据帧

来自分类Dev

将一列转换为其他列中具有相同数据的列

来自分类Dev

长到宽 - 将一列(具有多个度量)转换为一对列

来自分类Dev

将具有某些列名称的列从因数转换为字符

来自分类Dev

Typescript/Javascript:设置具有附加属性的唯一列表

来自分类Dev

将非数字行转换为具有自定义列名的列

来自分类Dev

大熊猫将唯一列值转换为列名,并将所有相关的服务器名放在其下

来自分类Dev

如何根据另一列的值将pandas列转换为列表?

来自分类Dev

使用dplyr计算唯一列条目的值

来自分类Dev

如何将具有名称+值作为列的特定ID的行转换为针对该唯一ID组合的这些行名称的列

来自分类Dev

使用 Pandas 将多列转换为一列

来自分类Dev

熊猫:将一行转换为一列,并使所有其他条目成为第二列

来自分类Dev

从第一个表将多行转换为具有许多列和名称的多行

来自分类Dev

获取 SQL 表的 XML 列中顶级元素名称的唯一列表

来自分类Dev

熊猫将列表的一列转换为假人

来自分类Dev

将Pandas数据框转换为每一列的字典列表的最佳方法

来自分类Dev

Python / Pandas / Datetime:将一列中的整个列表转换为datetime

来自分类Dev

将表的一列转换为向量

来自分类Dev

SQL查询:检索具有一个列的每个唯一值的条目的行

来自分类Dev

唯一列表,无需根据python中的空格拆分条目

Related 相关文章

  1. 1

    将非唯一列表的Pandas列转换为具有已填充条目的列名称

  2. 2

    将数据框转换为具有R中一列名称的数据框的命名列表

  3. 3

    避免在具有非唯一列的mySQL表中重复条目

  4. 4

    在R中将一列分成多个具有唯一列名称的变量

  5. 5

    如何将具有一列的 Pandas Dataframe 转换为具有两列的 Pandas Dataframe?

  6. 6

    将具有非唯一ID和列值的数据框转换为每个唯一ID的单行

  7. 7

    将具有A和B列的数据框转换为具有唯一B值列表的As列表

  8. 8

    如何使用Entity Framework 6更新具有唯一列的表上的条目

  9. 9

    将具有浮点列表的pandas列转换为具有int列表的列

  10. 10

    合并具有非唯一列的数据帧

  11. 11

    将一列转换为其他列中具有相同数据的列

  12. 12

    长到宽 - 将一列(具有多个度量)转换为一对列

  13. 13

    将具有某些列名称的列从因数转换为字符

  14. 14

    Typescript/Javascript:设置具有附加属性的唯一列表

  15. 15

    将非数字行转换为具有自定义列名的列

  16. 16

    大熊猫将唯一列值转换为列名,并将所有相关的服务器名放在其下

  17. 17

    如何根据另一列的值将pandas列转换为列表?

  18. 18

    使用dplyr计算唯一列条目的值

  19. 19

    如何将具有名称+值作为列的特定ID的行转换为针对该唯一ID组合的这些行名称的列

  20. 20

    使用 Pandas 将多列转换为一列

  21. 21

    熊猫:将一行转换为一列,并使所有其他条目成为第二列

  22. 22

    从第一个表将多行转换为具有许多列和名称的多行

  23. 23

    获取 SQL 表的 XML 列中顶级元素名称的唯一列表

  24. 24

    熊猫将列表的一列转换为假人

  25. 25

    将Pandas数据框转换为每一列的字典列表的最佳方法

  26. 26

    Python / Pandas / Datetime:将一列中的整个列表转换为datetime

  27. 27

    将表的一列转换为向量

  28. 28

    SQL查询:检索具有一个列的每个唯一值的条目的行

  29. 29

    唯一列表,无需根据python中的空格拆分条目

热门标签

归档