我正在尝试将我的txt
文件转换为pandas数据帧。
第一个多行是这样的,
['Tue Sep 12 15:13:56 +0000 2017', 'text. ', 0, 'en', 390, 529, 7138, 15727, False, -84.395235, 33.771232]
['Tue Sep 12 15:13:59 +0000 2017', "text", 0, 'en', 648, 891, 2087, 5801, False, -84.321948, 33.752879]
['Tue Sep 12 15:14:01 +0000 2017', 'text', 0, 'en', 217, 222, 959, 958, False, -82.849182, 27.865251]
['Tue Sep 12 15:14:06 +0000 2017', 'text', 0, 'en', 71, 85, 2357, 1290, False, -82.29976, 27.857254]
每个列表中每个元素的说明是
time, text, retweet_count, language, friends_count, followers_count, favourites_count, status_count, verified
我使用pandas
,但它不适用于我倾向于。
df = pd.read_csv("second.txt", sep=',')
然后我有近100,000列,0行。如何将此文件成功转换为数据框? 谢谢!
答案 0 :(得分:1)
我会在每行中读取一个列表,然后传递给DataFrame构造函数:
In [11]: import ast
In [12]: pd.DataFrame([ast.literal_eval(line) for line in open("second.txt")])
Out[12]:
0 1 2 3 4 5 6 7 8 9 10
0 Tue Sep 12 15:13:56 +0000 2017 text. 0 en 390 529 7138 15727 False -84.395235 33.771232
1 Tue Sep 12 15:13:59 +0000 2017 text 0 en 648 891 2087 5801 False -84.321948 33.752879
2 Tue Sep 12 15:14:01 +0000 2017 text 0 en 217 222 959 958 False -82.849182 27.865251
3 Tue Sep 12 15:14:06 +0000 2017 text 0 en 71 85 2357 1290 False -82.299760 27.857254
literal_eval
会将字符串转换为相应的python列表:
In [21]: line = "['Tue Sep 12 15:13:56 +0000 2017', 'text. ', 0, 'en', 390, 529, 7138, 15727, False, -84.395235, 33.771232]"
In [22]: ast.literal_eval(line)
Out[22]:
['Tue Sep 12 15:13:56 +0000 2017',
'text. ',
0,
'en',
390,
529,
7138,
15727,
False,
-84.395235,
33.771232]
答案 1 :(得分:0)
我想出了这个问题。
一旦在python代码中插入到外部列表中的内部列表,我添加了\n
。
然后@AndyHayden解决方案正常运作。