Python中如何正确整理从docx提取的含换行符DataFrame?
解决DataFrame显示混乱的问题
你的问题出在只对第一列做了换行拆分和展开,但没有将每行的内容拆分成对应的多列,导致所有数据挤在同一列。结合目标表格样式,按以下步骤处理:
1. 读取CSV并初步处理
首先读取CSV文件,拆分第一列的换行内容并展开成单行:
import pandas as pd # 读取CSV(假设无表头) df = pd.read_csv('output2.csv', header=None) # 拆分第一列的换行内容并展开 df[0] = df[0].str.split('\n') df = df.explode(0).reset_index(drop=True) # 过滤空行(清理无效数据) df = df[df[0].str.strip() != ''].reset_index(drop=True)
2. 将单行内容拆分成多列
此时每行的0列包含完整的一行数据(年份+对应数值),用空格(或制表符,根据实际内容调整)拆分出多列:
# 按空格拆分列(如果是制表符分隔就用'\t') df = df[0].str.split('\s+', expand=True) # 设置表头:取第一行作为列名,后续为数据行 header = df.iloc[0] df = df[1:] df.columns = header df.reset_index(drop=True, inplace=True)
3. 数据类型转换(可选)
如果数值列存在格式问题,可转换为数值类型:
# 转换数值列类型(根据实际列名调整范围) for col in df.columns[1:]: df[col] = pd.to_numeric(df[col], errors='coerce')
处理后DataFrame会按照目标样式显示,年份与对应数值将匹配到正确列中。
内容的提问来源于stack exchange,提问作者Prototype51
相关产品推荐
相关产品推荐

