使用Pandas读取CSV文件时所有列合并为一列的问题求助
解决CSV读取后列合并的问题
你的CSV文件每行都被整体用双引号包裹了,这导致Pandas把整行内容当成单个列,没法识别逗号作为分隔符。给你两个简单的解决办法:
方法1:手动修正CSV文件
直接打开CSV文件,把每行开头和结尾的双引号删掉,比如把:
"clientId,timestamp,log"
改成:
clientId,timestamp,log
其他行做同样处理后,再用pd.read_csv()读取就能正常拆分三列。
方法2:用Pandas参数自动处理
不需要修改原文件,读取时指定引号处理规则即可,代码示例:
import pandas as pd import csv # 让Pandas识别并忽略包裹整行的双引号 df = pd.read_csv('你的文件名.csv', quotechar='"', quoting=csv.QUOTE_ALL)
也可以先读取文本内容去掉引号再解析:
import pandas as pd from io import StringIO # 读取所有行并去除每行前后的双引号 with open('你的文件名.csv', 'r', encoding='utf-8') as f: processed_lines = [line.strip().strip('"') for line in f] # 用处理后的内容生成正常的DataFrame df = pd.read_csv(StringIO('\n'.join(processed_lines)))
两种方法都能让Pandas正确识别clientId、timestamp、log三列,正常展示DataFrame。
内容的提问来源于stack exchange,提问作者Артём
相关产品推荐
相关产品推荐

