Python 从多个列表读取数据帧
我有一个输入文件,其中包含如下数据:Python 从多个列表读取数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个输入文件,其中包含如下数据: [ABCD,color,NORMAL,N,2015-02-20,1] [XYZA,color,NORMAL,N,2015-05-04,1] [GFFD,color,NORMAL,N,2015-07-03,1] [NAAS,color,NORMAL,N,2015-08-26,1] [LOWW,color,NORMAL,N,2015-09-26,1] [KARA,color,NORMAL,N,2015-11-08,1] [ALEQ,color,NORMAL,N,
[ABCD,color,NORMAL,N,2015-02-20,1]
[XYZA,color,NORMAL,N,2015-05-04,1]
[GFFD,color,NORMAL,N,2015-07-03,1]
[NAAS,color,NORMAL,N,2015-08-26,1]
[LOWW,color,NORMAL,N,2015-09-26,1]
[KARA,color,NORMAL,N,2015-11-08,1]
[ALEQ,color,NORMAL,N,2015-12-04,1]
[VDDE,color,NORMAL,N,2015-12-23,1]
[QWER,color,NORMAL,N,2016-01-18,1]
[KDSS,color,NORMAL,Y,2015-08-29,1]
我创建了一个变量来存储列名称,比如table_columns。如何将其转换为数据帧
应该非常类似于从多个列表中读取,但它将从中读取的列表数为n 您可以尝试使用和:
一种方法是:
from StringIO import StringIO
import pandas as pd
>>> pd.read_csv(StringIO(open('stuff.txt').read().replace('[', '').replace(']', '')), header=None)
D color NORMAL N 2015-02-20 1
0 XYZA color NORMAL N 2015-05-04 1
1 GFFD color NORMAL N 2015-07-03 1
2 NAAS color NORMAL N 2015-08-26 1
3 LOWW color NORMAL N 2015-09-26 1
4 KARA color NORMAL N 2015-11-08 1
5 ALEQ color NORMAL N 2015-12-04 1
6 VDDE color NORMAL N 2015-12-23 1
7 QWER color NORMAL N 2016-01-18 1
8 KDSS color NORMAL Y 2015-08-29 1
数据格式似乎不同寻常:如果没有方括号,它将是一个简单的csv文件,熊猫可以毫无问题地读取。数据文件包含方括号是有原因的吗?是的,数据来自Spark的mapPartition方法中的键值pairdd。它将数据存储为键和列表。我只是把这个值用于后处理。我认为这是一个更好的答案。@Abhinav Bhardwaj它是如何工作的?如果我的回答是有帮助的,不要忘了它或Ami Tavory解决方案。谢谢。-)如果你接受其中任何一个,应该是这一个。@jezrael嘿,他们两个都工作了,谢谢你们的快速回复。然而,正如Ami Tavory所指出的,我使用了这个
from StringIO import StringIO
import pandas as pd
>>> pd.read_csv(StringIO(open('stuff.txt').read().replace('[', '').replace(']', '')), header=None)
D color NORMAL N 2015-02-20 1
0 XYZA color NORMAL N 2015-05-04 1
1 GFFD color NORMAL N 2015-07-03 1
2 NAAS color NORMAL N 2015-08-26 1
3 LOWW color NORMAL N 2015-09-26 1
4 KARA color NORMAL N 2015-11-08 1
5 ALEQ color NORMAL N 2015-12-04 1
6 VDDE color NORMAL N 2015-12-23 1
7 QWER color NORMAL N 2016-01-18 1
8 KDSS color NORMAL Y 2015-08-29 1