Pandas dataframe 操作docx文档的两个小trick

1.===============>>

docx表格转dataframe:

import pandas as pd  
from docx import Document  
  
def docx_to_df(file_path):  
    doc = Document(file_path)  
    data = []  
    for table in doc.tables:  
        for row in table.rows:  
            row_data = []  #遍历行,每行清空一次
            for cell in row.cells:  
                text = cell.text.strip()  # 删除多余的空格  
                row_data.append(text)  
            data.append(row_data)  #每行数据保存成一个列表,存放到data里
    df = pd.DataFrame(data)  
    return df

 2.===============>>

dataframe分列:经过上面的docx_to_df获得表格内容后,有些时候需要进一步拆分以方便后续处理,这时候可以对df进行分列(类似excel的分列

import pandas as pd  

data = {'combined_column': ['A,B', 'C,D', 'E,F']}  
df = pd.DataFrame(data)  
  
# 将组合列拆分为两个新列  
split_values = df['combined_column'].str.split(',')  
df[['column1', 'column2']] = pd.DataFrame(split_values.tolist(), index=df.index)  

# 删除原始的组合列
df = df.drop(columns='combined_column')  

也可以处理长度不同的内容:

import pandas as pd  

data = {'combined_column': ['A,B,X', 'C,D', 'E,F,Z']}  
df = pd.DataFrame(data)  
  
# 将组合列拆分为两个新列  
split_values = df['combined_column'].str.split(',')  
#此处column需要和拆分后最多的列数相同,结果中df会自动用None补齐
df[['column1', 'column2','column3']] = pd.DataFrame(split_values.tolist(), index=df.index) 
 

'''运行结果为:
  combined_column column1 column2 column3
0           A,B,X       A       B       X
1             C,D       C       D    None
2           E,F,Y       E       F       Y

'''

pandas本身功能还是很强大的,尤其是对数据进行批量处理和结构化方面非常有优势,用熟了应该会很顺手

(所有啥时候才能用熟咧 (°ཀ°)

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值