在python中将列表转换为dataframe

2024-09-28 18:49:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含列标题和数据的文本文件。我正在尝试将此文件数据转换为pandas数据帧。在

文件:

#Columns: TargetDoc|GRank|LRank|Priority|Loc ID
aaaaa|1|1|Slow|8gkahinka.01
aaaaa|1|0|Slow|7nlafnjbaflnbja.01

我写了以下代码: 首先,我转换了每一行并尝试转换数据帧:

^{pr2}$

但我在测向上出错了:

AssertionError: 5 columns passed, passed data had 10 columns.

我的代码有什么问题,或者有没有更好的方法转换成dataframe?在


Tags: columns文件数据代码标题pandasslow文本文件
2条回答

这是因为您正在将所有行合并为一个列表:

data_list += l.strip().split('|')

你想要的是:

^{pr2}$

这样,您将得到一个包含5个元素的列表。在

编辑:但强烈推荐使用csv分隔符的上述解决方案。在

您只需使用^{}sep='|'读入文件,然后使用rename将第一个列名固定为后处理步骤:

In [228]:
import io
import pandas as pd    
t="""#Columns: TargetDoc|GRank|LRank|Priority|Loc ID
aaaaa|1|1|Slow|8gkahinka.01
aaaaa|1|0|Slow|7nlafnjbaflnbja.01"""
df = pd.read_csv(io.StringIO(t), sep='|')
df

Out[228]:
  #Columns: TargetDoc  GRank  LRank Priority              Loc ID
0               aaaaa      1      1     Slow        8gkahinka.01
1               aaaaa      1      0     Slow  7nlafnjbaflnbja.01

现在,^{}通过传入第一个列名作为传入dict的键和split作为新列名的字符串传入第一列:

^{pr2}$

所以在你的情况下:

df = pd.read_csv("DocID101_201604070523.txt", sep='|')

然后rename如上图所示

相关问题 更多 >