将列值更改为pandas中的列标题

杜松

我有以下代码,该代码将pandas数据框的一列中的值用作新数据框的列。数据框第一列中的值成为新数据框的索引。

从某种意义上说,我想将一个邻接表转换成一个邻接矩阵。这是到目前为止的代码:

import pandas as pa
print "Original Data Frame"
# Create a dataframe
oldcols = {'col1':['a','a','b','b'], 'col2':['c','d','c','d'], 'col3':[1,2,3,4]}
a = pa.DataFrame(oldcols)
print a

# The columns of the new data frame will be the values in col2 of the original
newcols = list(set(oldcols['col2']))
rows = list(set(oldcols['col1']))

# Create the new data matrix
data = np.zeros((len(rows), len(newcols)))

# Iterate over each row and fill in the new matrix
for row in zip(a['col1'], a['col2'], a['col3']):
    rowindex = rows.index(row[0])
    colindex = newcols.index(row[1])
    data[rowindex][colindex] = row[2]

newf = pa.DataFrame(data)
newf.columns = newcols
newf.index = rows

print "New data frame"
print newf

这适用于此特定实例:

Original Data Frame
  col1 col2  col3
0    a    c     1
1    a    d     2
2    b    c     3
3    b    d     4
New data frame
   c  d
a  1  2
b  3  4

如果col3中的值不是数字,它将失败。我的问题是,是否有更优雅/更稳健的方式来做到这一点?

忘了它

这看起来像是枢轴工作

import pandas as pd
oldcols = {'col1':['a','a','b','b'], 'col2':['c','d','c','d'], 'col3':[1,2,3,4]}
a = pd.DataFrame(oldcols)  

newf = a.pivot(index='col1', columns='col2')
print(newf)

产量

      col3   
col2     c  d
col1         
a        1  2
b        3  4

如果您不希望使用MultiIndex列,则可以删除col3using:

newf.columns = newf.columns.droplevel(0)

然后会产生

col2  c  d
col1      
a     1  2
b     3  4

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数组的列值更改为列标题

来自分类Dev

Python Pandas Pivot - 将 Aggc 列值更改为行

来自分类Dev

如何将列中的值更改为伪值

来自分类Dev

将数据框中的值更改为列

来自分类Dev

将列标题更改为行中的值

来自分类Dev

将熊猫索引更改为列标题

来自分类Dev

将熊猫索引更改为列标题

来自分类Dev

将列值更改为字符串

来自分类Dev

将标签值更改为列数据框

来自分类Dev

将列值更改为等级和总和

来自分类Dev

UNION ALL 与 UNPIVOT 将列值更改为行

来自分类Dev

将数据框列中的负值更改为绝对值

来自分类Dev

将列中的唯一值更改为两个特定值之一

来自分类Dev

将列中的“NULL”值更改为空白值 - Tibco Spotfire

来自分类Dev

将所有列标题更改为选择表。*

来自分类Dev

使用一个UPDATE命令将列中的某些值更改为SQL中的某些其他值

来自分类Dev

如何将数据框的第4,5,6列中的值更改为百分比格式?

来自分类Dev

如何在SQL Server中使用存储过程将重复值更改为列中的唯一值

来自分类Dev

如何将单个元素中的逗号分隔值更改为多列并分配数字编码

来自分类Dev

根据循环内另一列的值将一列的值更改为nan

来自分类Dev

将负值更改为0,而不更改其他列

来自分类Dev

当一列中的值更改为“ ID”列中的值时,新建一个“更改”列

来自分类Dev

数据框将现有列值更改为单个特定值

来自分类Dev

将列的值更改为美元金额并乘以100,000美元

来自分类Dev

在TSQL中将值更改为一个列时,如何将表分成块?

来自分类Dev

Django - 如何将列的所有值更改为空?

来自分类Dev

将多个列值更改为二进制值

来自分类Dev

将列更改为索引

来自分类Dev

Ajax jQuery按钮,该按钮在更改时将颜色更改,并且一列的值更改为true或false

Related 相关文章

  1. 1

    将数组的列值更改为列标题

  2. 2

    Python Pandas Pivot - 将 Aggc 列值更改为行

  3. 3

    如何将列中的值更改为伪值

  4. 4

    将数据框中的值更改为列

  5. 5

    将列标题更改为行中的值

  6. 6

    将熊猫索引更改为列标题

  7. 7

    将熊猫索引更改为列标题

  8. 8

    将列值更改为字符串

  9. 9

    将标签值更改为列数据框

  10. 10

    将列值更改为等级和总和

  11. 11

    UNION ALL 与 UNPIVOT 将列值更改为行

  12. 12

    将数据框列中的负值更改为绝对值

  13. 13

    将列中的唯一值更改为两个特定值之一

  14. 14

    将列中的“NULL”值更改为空白值 - Tibco Spotfire

  15. 15

    将所有列标题更改为选择表。*

  16. 16

    使用一个UPDATE命令将列中的某些值更改为SQL中的某些其他值

  17. 17

    如何将数据框的第4,5,6列中的值更改为百分比格式?

  18. 18

    如何在SQL Server中使用存储过程将重复值更改为列中的唯一值

  19. 19

    如何将单个元素中的逗号分隔值更改为多列并分配数字编码

  20. 20

    根据循环内另一列的值将一列的值更改为nan

  21. 21

    将负值更改为0,而不更改其他列

  22. 22

    当一列中的值更改为“ ID”列中的值时,新建一个“更改”列

  23. 23

    数据框将现有列值更改为单个特定值

  24. 24

    将列的值更改为美元金额并乘以100,000美元

  25. 25

    在TSQL中将值更改为一个列时,如何将表分成块?

  26. 26

    Django - 如何将列的所有值更改为空?

  27. 27

    将多个列值更改为二进制值

  28. 28

    将列更改为索引

  29. 29

    Ajax jQuery按钮,该按钮在更改时将颜色更改,并且一列的值更改为true或false

热门标签

归档