熊猫不会在逗号分隔的.txt文件中分隔列

时间:2018-08-27 10:31:12

标签: python pandas

我知道这个问题已经被问了很多遍了,但是这让我真的抓狂了。我有一个.txt文件,看起来像:

“ 0,1,2,3,4,.... 63,0,1,2,3,4 ..... 63”

“ 0,1,2,3,4,.... 63,0,1,2,3,4 ..... 63”

“ 0,1,2,3,4,.... 63,0,1,2,3,4 ..... 63”

,以此类推。 因此,这是64 + 64 = 128列,用逗号分隔,而每一行都用双引号引起来。

我使用了以下命令:

#Used this initially
df = pd.read_csv('test_data.txt')
#Used this after reading more stackoverflow answers
df = pd.read_csv('test_data.txt', header = None, sep=",", delimiter=',', quotechar='"', index_col = None)

我知道sep和delimiter是相同的参数,但是无论如何我都尝试过,我都不必指定这些参数,因为pandas默认选择逗号。 在此之后,我只是使用:

df.head()

它输出:

                                                 0
0   0.00,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9...

1   0.00,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9...

2   0.00,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9...

3   0.00,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9...

4   0.00,1.00,2.00,3.00,4.00,5.00,6.00,7.00,8.00,9...

它将全部内容读为一栏,请告知我如何阅读所有128列。

1 个答案:

答案 0 :(得分:2)

这将使您获得所需的结果:

df = pd.read_csv('test_data.txt', header=None)
df = pd.DataFrame(df[0].str.split(',').tolist())

因此,这将读取您的文件,该文件的每一行都用引号引起来,并将其打包为单列。

然后,您将该列除以comma并从结果中构造新的数据框。