基于Pandas按秒分组导出DataFrame日志数据至文件的技术问题
按秒数分组导出Pandas DataFrame数据
我来帮你搞定这个按秒数拆分导出日志的需求~ 咱们一步步来实现:
步骤1:提取秒数列
你的df[0]列格式是[25/May/2015:23:11:15,最后两位正好是秒数,咱们用字符串切片就能轻松提取:
import pandas as pd # 读取原始日志数据(和你原来的代码保持一致) data = pd.read_csv('apache-access-log.txt', sep=" ", header=None) df = pd.DataFrame(data) # 从df[0]列提取最后两位作为秒数,生成新列'second' df['second'] = df[0].str[-2:]
步骤2:按秒数分组并导出文件
接下来遍历每个秒数对应的分组,把每组数据导出到单独的文件里:
# 按秒数列分组 grouped = df.groupby('second') # 遍历每个分组,导出到对应文件 for second_value, group_data in grouped: # 定义文件名,比如秒数15的文件叫log_second_15.csv output_filename = f'log_second_{second_value}.csv' # 导出分组数据,index=False避免把索引列也写进文件 group_data.to_csv(output_filename, index=False)
小补充
如果不想把新增的second列也导出到文件里,可以修改导出代码,去掉这个辅助列:
group_data.drop('second', axis=1).to_csv(output_filename, index=False)
内容的提问来源于stack exchange,提问作者Chetan_Vasudevan
相关产品推荐
相关产品推荐

