Excel file parser
introduce
pandas 是一个开源的 Python 数据分析库,提供了高效的数据结构(如 DataFrame 和 Series)和多种数据操作工具。它非常适合用于数据清洗、数据分析和数据处理等任务,尤其是在处理表格型数据(例如 Excel 表格、CSV 文件、SQL 数据库等)时非常强大。
pandas 的名称源自“panel data”(面板数据),即带有时间和多维索引的复杂数据结构。虽然这个名字与面板数据相关,但 pandas 已经成为了所有类型数据分析的标准工具之一。
核心功能
通过 Series 和 DataFrame 两个核心数据结构,pandas 提供了极其灵活和高效的操作方式,几乎是进行数据分析和科学计算时的标准工具。
- 读写excel\sql\csv文件
- 数据过滤 选择
- 数据清洗 转换
- 数据合并连接
- 数据透视
- 数据可视化
- 大数据处理
lib
pandas
use demo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
| import pandas as pd
import re
""" 加权平均内容= ∑(文本长度) ———————————— ∑(内容×文本长度) """
file_path = './data/data.xlsx'
df = pd.read_excel(file_path)
print("原始数据:") print(df.head())
if df['内容'].dtype == 'object': df['内容'] = df['内容'].str.replace('%', '').astype(float) / 100 elif df['内容'].dtype != 'float': df['内容'] = df['内容'].astype(float)
df['文件名'] = df['文件名'].apply(lambda x: re.sub(r'\d+$', '', str(x)))
grouped = df.groupby(['内容', '文件名']).agg( 文本长度总和=('文本长度', 'sum'), 内容加权平均=('内容', lambda x: (x * df.loc[x.index, '长度']).sum() / x.sum()) ).reset_index()
grouped['最低加权平均内容'] = grouped['内容加权平均'].min()
grouped['内容加权平均'] = grouped['内容加权平均'].apply(lambda x: f"{x / 1000:.2f}%")
merged_data = [] for _, group in grouped.iterrows(): merged_data.append({ '内容': group['内容'] })
merged_df = pd.DataFrame(merged_data)
print("\n合并后的数据:") print(merged_df)
output_path = 'result_data.xlsx' merged_df.to_excel(output_path, index=False)
print(f"\n数据已保存到 {output_path}")
|