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本身功能还是很强大的,尤其是对数据进行批量处理和结构化方面非常有优势,用熟了应该会很顺手
(所有啥时候才能用熟咧 (°ཀ°)