如何在熊猫中读取带有空格分隔值的文件


Answers:


134

添加delim_whitespace=True参数,它比正则表达式更快。


应该添加并删除,delimiter=' '因为它们在最新版本中是互斥的。
matanster,

2
@matanster:delimiter=' '非常脆弱,它说期望只有一个空间。delimiter='\s+'大熊猫建议不要使用制表符,新闻线,多个空格,不间断的空格,这些的组合等,它们更可靠。
smci

29

您可以使用正则表达式作为分隔符:

pd.read_csv("whitespace.csv", header=None, delimiter=r"\s+")

2
当您不仅有一个空格作为分隔符时,这将很有帮助。在当前版本中,应该添加engine = "python"以避免警告。
于尔格·斯巴克梅林

1

可接受的答案似乎不适用于新版本的Python,因此这是使用用户定义的Dialect的最新示例:

 csv.register_dialect('skip_space', skipinitialspace=True)
 with open(my_file, 'r') as f:
      reader=csv.reader(f , delimiter=' ', dialect='skip_space')
      for item in reader:
          print(item)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.