【问题标题】:Pandas won't separate columns in my comma separated .txt filePandas 不会在我的逗号分隔的 .txt 文件中分隔列
【发布时间】:2018-08-27 18:48:42
【问题描述】:

我知道这个问题已经被问过很多次了,但这让我真的摸不着头脑。我有一个 .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 栏。

【问题讨论】:

  • 不确定提供的信息,但您可以尝试使用 pd.read_table('filename',sep=",",header=None) 并检查它是否有效
  • @anky_91 你好,刚试了,还是只看了一栏。

标签: python pandas


【解决方案1】:

这会让你得到想要的结果:

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

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

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

【讨论】:

  • 非常感谢!为什么 read_csv 没有用逗号分隔列?
  • @AbdurRehmanKhan 由于引号,尝试将quoting=3 添加到read_csv,您会看到会发生什么。
  • 哦,现在一切都说得通了……即使我添加了 quotechar=' " ',那肯定是误解了它的目的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多