【发布时间】:2020-10-10 05:57:25
【问题描述】:
我有一个带有制表符分隔的 .csv 文件,当您使用记事本打开时,该文件如下所示(您在记事本中看到的空间实际上是制表符 (\t):
sep =
Time Val1 Val2
00:01 10 20
"sep=" 是为了让 excel 可以正确读取 .csv 文件。问题是,当您尝试使用 read_csv 打开它时,它会返回一个名为“s”的列的单列数据框。如果我用 Excel 打开文件并双击第一列宽度以具有自动宽度,保存并关闭,则文件正确格式化为逗号分隔。当您使用记事本打开文件时,文件开头不再有“sep=”,然后 Pandas 会正确读取所有列和值。
在有人问之前: 1. 我尝试使用以下方法删除第一行:
with open(csvFileName, mode="rU") as infile:
with open(csvFileName, mode="r") as infile:
要么删除第一行,要么将 "\t" 替换为 "," 并将其写回另一个文件,但都不起作用。
2.我也尝试检测和使用不同的编码方案,所以编码不是问题。
3.文件使用lineterminator = \n,我用那个参数读取
4.我用skiprows=0跳过第一行,没用
5.我尝试设置header = 1指向它有标题的行,并设置sep=\t,它正确读取列数和行数,但列名是“UnnamedXYZ”,值都是NaNs
任何想法都值得赞赏!
【问题讨论】: