如何获取数据框并按列将其分为单个列表?

问题描述:

由于这个问题说,我有一个数据帧这是相当大的,但看起来像:如何获取数据框并按列将其分为单个列表?

 ID Count ValueX Value 2 Value 3 
RowX 1  234.  255.  yes.  yes 
RowY 1  123.  135.  543.  342 
RowW 1  234.  235.  yes.  yes 
RowJ 1  123.  115.  543.  342 
RowA 1  234.  285.  yes.  yes 
RowR 1  123.  165.  543.  342 
RowX 2  234.  255.  yes.  yes 
RowY 2  123.  135.  543.  342 
RowW 2  234.  235.  yes.  yes 
RowJ 2  123.  115.  543.  342 
RowA 2  234.  285.  yes.  yes 
RowR 2  123.  165.  543.  342 
. 
. 
. 
RowX 1233 234.  255.  yes.  yes 
RowY 1233 123.  135.  543.  342 
RowW 1233 234.  235.  yes.  yes 
RowJ 1233 123.  115.  543.  342 
RowA 1233 234.  285.  yes.  yes 
RowR 1233 123.  165.  543.  342 

我要的是能够采取DF和列它拆分成列表,让我结束与列表ID,Count,ValueX, Value 2和其余的。目前,我这样做:

IDlist = df_original.ID.tolist() 
Countlist = df_original.Count.tolist() 
... 

这给了我需要的解决方案,但我想知道是否有一种更简单的方法将df分割成列表。

+0

当你说“更短”时,你的意思是更短的代码行吗?或者你想要一个循环,使清单的列表? – ASGM

+0

要么真的,现在我手动创建33个列表 – tushariyer

您可以创建嵌套列表:

L = df.values.T.tolist() 

print (L) 
[[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], 
[234.0, 123.0, 234.0, 123.0, 234.0, 123.0, 234.0, 123.0, 234.0, 123.0, 234.0, 123.0], 
[255.0, 135.0, 235.0, 115.0, 285.0, 165.0, 255.0, 135.0, 235.0, 115.0, 285.0, 165.0], 
['yes.', '543.', 'yes.', '543.', 'yes.', '543.','yes.','543.','yes.','543.','yes.','543.'], 
['yes', '342', 'yes', '342', 'yes', '342', 'yes', '342', 'yes', '342', 'yes', '342']] 

您可以通过位置就像访问:

print (L[0]) 
[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2] 

或者更好的创造list的字典:

d = df.to_dict('l') 
print (d) 
{ 
'Count':[234.0, 123.0, 234.0, 123.0, 234.0, 123.0, 234.0, 123.0, 234.0, 123.0, 234.0, 123.0], 
'Value 3':['yes', '342', 'yes', '342', 'yes', '342','yes','342', 'yes', '342', 'yes', '342'], 
'ID': [1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2], 
'Value 2': ['yes.', '543.', 'yes.', '543.', 'yes.', '543.', 
      'yes.', '543.', 'yes.', '543.', 'yes.', '543.'], 
'ValueX':[255.0, 135.0, 235.0, 115.0, 285.0, 165.0, 255.0, 135.0, 235.0, 115.0, 285.0,165.0] 
} 

您可以通过访问列名如:

print (d['ID']) 
[1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2] 
+0

你可以进一步了解它的作用吗? – tushariyer

+0

好的,唯一的问题是你需要嵌套列表吗?或不? – jezrael

+0

我并不需要嵌套列表,没有 – tushariyer