如何将含制表符的DataFrame拆分为带表头的结构化列?
问题:将读取的CSV数据拆分为规范列格式的DataFrame
读取CSV文件后,得到的DataFrame格式如下:
Year WhiteMale WhiteFemale BlackMale BlackFemale 0 1900 46.6 48.7 32.5 33.5 1 1950 66.5 72.2 59.1 62.9 2 1960 67.4 74.1 61.1 66.3 3 1970 68.0 75.6 60.0 68.3 4 1975 69.5 77.3 62.4 71.3
希望将其拆分为带有对应表头的独立列,得到如下结果:
Year WhiteMale WhiteFemal BlackMale BlackFemal 0 1900 46.6 48.7 32.5 33.5 1 1950 66.5 72.2 59.1 62.9 2 1960 67.4 74.1 61.1 66.2 3 1970 68.0 75.6 60.0 68.3 4 1975 69.5 77.3 62.4 71.1
解决方法
方法1:读取CSV时指定正确分隔符
从原始数据格式来看,列之间是用**制表符(\t)**分隔的,读取时未指定分隔符会导致列未被正确拆分。直接在读取时指定分隔符即可:
import pandas as pd # 替换为你的CSV文件路径 df = pd.read_csv('your_data.csv', sep='\t') print(df)
方法2:已读取错误格式后的拆分处理
如果已经读取了错误格式的DataFrame(所有内容合并在一列),可以通过字符串拆分来修正:
import pandas as pd # 假设已读取错误格式的df # 提取并拆分表头 new_columns = df.columns[0].split('\t') # 拆分每行数据为多列 df = df.iloc[:, 0].str.split('\t', expand=True) # 设置新表头 df.columns = new_columns # 重置索引(可选,根据需求调整) df = df.reset_index(drop=True) print(df)
内容的提问来源于stack exchange,提问作者quetoi71
相关产品推荐
相关产品推荐

