从熊猫数据帧创建可变数量的列表

时间:2020-09-03 08:36:27

标签: python pandas

我有一个由其他代码段生成的pandas数据框-每次生成时,该数据框的列数都可能不同:让我们将它们称为col1,col2,...,coln,其中n不固定。请注意,col1,col2,...只是占位符,列的实际名称可以是任意的,例如TimeStamp或PrevState。

由此,我想将每列转换为一个列表,列表名称与该列相同。因此,我想要一个名为col1的列表,并在数据框的第一列中添加条目,依此类推,直到coln

我该怎么做?

谢谢

2 个答案:

答案 0 :(得分:1)

不是recommended,最好是创建字典:

d = df.to_dict('list')

然后从列名称中按字典键选择列表:

print (d['col'])

示例

df = pd.DataFrame({
        'A':list('abcdef'),
        'B':[4,5,4,5,5,4],
        'C':[7,8,9,4,2,3],
})

d = df.to_dict('list')
print (d)
{'A': ['a', 'b', 'c', 'd', 'e', 'f'], 'B': [4, 5, 4, 5, 5, 4], 'C': [7, 8, 9, 4, 2, 3]}

print (d['A'])
['a', 'b', 'c', 'd', 'e', 'f']

答案 1 :(得分:-1)

import pandas as pd

df = pd.DataFrame()
df["col1"] = [1,2,3,4,5]
df["colTWO"] = [6,7,8,9,10]

for col_name in df.columns:
    exec(col_name + " = " + df[col_name].values.__repr__())