编辑
2025-01-15
技术
00
请注意,本文编写于 396 天前,最后修改于 396 天前,其中某些信息可能已经过时。

代码如下:

python
import pandas as pd import os from datetime import datetime # 读取数据 for file in os.listdir(): if file.endswith('xlsx'): df = pd.read_excel(file, sheet_name='Tracing report',header=0) # 假设输入文件名为 input.xlsx # 处理合并单元格:填充空白值 df['ATD'] = df['ATD'].ffill() # 将时间列转换为 datetime 类型 df['ATD'] = pd.to_datetime(df['ATD'],errors='coerce') # E列是 ATD df['ATA_T'] = pd.to_datetime(df.iloc[:,19],errors='coerce') # T列是 ATA df['ATA KZH border'] = pd.to_datetime(df['ATA KZH border'],errors='coerce') # M列是 口岸 df = df.dropna(subset=['ATD', 'ATA_T','ATA KZH border']) # 计算时间差 df['整段时效'] = (df['ATA_T'] - df['ATD']).dt.days -1 # 转换为天 df['欧洲段时效'] = (df['ATA_T'] - df['ATA KZH border']).dt.days -1 # 转换为天 # 按车站、月份和口岸分组 df['Month'] = df['ATD'].dt.to_period('M') # 提取月份 # df['Month'] = df['ATD'].dt.month grouped = df.groupby(['Part No.', 'Month', 'ATA CN border'], as_index=False) # I列是 车站, K列是 口岸 # 计算每组的平均值 result = grouped.agg({ '整段时效': lambda x: round(x.mean(), 2), '欧洲段时效': lambda x: round(x.mean(), 2) }) result = result.rename(columns={ 'Part No.': '车站', 'Month': '月份', 'ATA CN border': '口岸' }) # 将结果保存到 Excel 文件 result.to_excel('output.xlsx', index=False)

本文作者:ivan

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!