我需要在以下类型的 python pandas 中读取文件
"column1","column2","column3","column4"
"value1","value,1","value2","value3"
"value5","value6","value7","value8"
"value32","value21","value,31","value,44"
Run Code Online (Sandbox Code Playgroud)
我尝试使用
file1 = pd.read_csv('sample.txt',sep=',\s+',skipinitialspace=True,quoting=csv.QUOTE_ALL,engine=python)
Run Code Online (Sandbox Code Playgroud)
它说的是类似ValueErro(预计有些行有别的东西),不完全是
我需要读取这种类型的大型 CSV 文件并将其加载到数据框。我应该做哪些更改才能正确阅读它。
在 python pandas 中使用sep=',\s*'而不是sep=',\s+',它将使每个逗号后的空格成为可选:
file1 = pd.read_csv('sample.txt',sep=',\s*',skipinitialspace=True,quoting=csv.QUOTE_ALL,engine='python')
Run Code Online (Sandbox Code Playgroud)
双引号内的逗号是可以的,rfc4180 标准允许。
至于" "数据值的内部(例如“值”“13”) - 您需要在处理之前清理源文件。如果双引号保持在一起为“”,那么这应该不是问题,因为它符合 CSV 标准,它调用转义双引号,但如果双引号之间有空格,则需要清理它
使用:
sed -r 's/\"\s+\"/\"\"/g' src.csv >cleared.csv
Run Code Online (Sandbox Code Playgroud)
在将 CSV 喂给 pandas 之前。它将删除引号之间的空格或运行
sed -r 's/\"\s+\"//g' src.csv >cleared.csv
Run Code Online (Sandbox Code Playgroud)
完全删除内部引号。
| 归档时间: |
|
| 查看次数: |
47564 次 |
| 最近记录: |