如何使用Python将CSV文件的单列数据拆分为姓名和数字两列
问题原因
你现有CSV文件的整行内容都被双引号包裹,pandas的read_csv默认会将引号内部的内容识别为单个字段,此时你指定的空格分隔符不会在引号内部生效,因此读入的DataFrame本身就只有1列,输出后自然无法拆分到Excel的B列。
解决代码
方案1:调整读取参数直接拆分
直接指定引号识别规则,读取时直接拆分两列:
import pandas as pd # quotechar指定引号字符,读取时自动剥离外层引号,header=None说明没有表头 df = pd.read_csv('test.csv', sep='\s+', quotechar='"', header=None, names=['姓名', '数字']) # 输出时指定utf-8-sig编码避免Excel打开乱码 df.to_csv('result.csv', index=False, encoding='utf-8-sig')
方案2:先读整行再拆分
如果后续还有更复杂的拆分规则,可先读为单列再拆分:
import pandas as pd # 先读取整行为单列 df = pd.read_csv('test.csv', header=None, names=['raw'], quotechar='"') # 按多空格拆分最多2列 df[['姓名', '数字']] = df['raw'].str.split('\s+', expand=True, n=1) # 丢弃原始列后输出 df = df.drop('raw', axis=1) df.to_csv('result.csv', index=False, encoding='utf-8-sig')
额外注意事项
如果打开result.csv后Excel仍未自动拆分两列,可通过Excel菜单栏的「数据」-「自文本/CSV」功能导入文件,选择逗号作为分隔符即可正确识别两列。
内容的提问来源于stack exchange,提问作者user17335032
相关产品推荐
相关产品推荐

