【问题标题】:i have a log file and i want to write a python code to increment second column value by 1 hour and 9th column value by 1我有一个日志文件,我想编写一个 python 代码来将第二列值增加 1 小时,将第 9 列值增加 1
【发布时间】:2022-11-30 22:47:22
【问题描述】:

我将日志文件数据集放在 unix 目录中,如下所示:

我想将所有行的 P 代码值增加 1,并将时间戳列增加 1 小时

12345432,10-11-2011,11:11:12.435,0,0,XVC_AS,12,14,81,12345412,qweds
12345433,10-11-2011,18:12:45.124,0,0,XVC_AS,12,15,77,12345445,qweds
12345434,10-11-2011,11:22:08.564,0,0,XVC_AS,12,16,65,12345436,qweds
12345435,10-11-2011,21:21:21.554,0,0,XVC_AS,12,17,92,12345444,qweds
12345436,10-11-2011,51:20:12.555,0,0,XVC_AS,12,18,43,123454398,qweds

输出应该是这样的

12345432,10-11-2011,12:11:12.435,0,0,XVC_AS,12,15,81,12345412,qweds
12345433,10-11-2011,19:12:45.124,0,0,XVC_AS,12,16,77,12345445,qweds
12345434,10-11-2011,12:22:08.564,0,0,XVC_AS,12,17,65,12345436,qweds
12345435,10-11-2011,22:21:21.554,0,0,XVC_AS,12,18,92,12345444,qweds
12345436,10-11-2011,52:20:12.555,0,0,XVC_AS,12,19,43,123454398,qweds

【问题讨论】:

  • 那么到目前为止你尝试了什么?请提供代码。
  • 如果你只是刚刚学习,你可能应该忽略 Python 2 并关注当前推荐和支持的语言版本,即 Python 3。

标签: python python-2.7


【解决方案1】:

首先从标题中删除空格(为清楚起见),然后将其作为 CSV 导入 Pandas:

import pandas as pd
df = pd.read_csv('file.csv')

增加 Pcode 很简单:

f['Pcode'] = df['Pcode']+1

但是你的时间戳有问题。通常您可以将它们视为时间戳并添加一个小时,但您的时间戳不知何故具有 51:20:12.555 ,这不是任何格式的有效时间戳。这确实是正确的吗?如果是这样,您将需要进行一些手动格式化。

这是一个完全手动的方法:

df['test'] = df['timestamp'].apply(lambda x: x.split(':'))
df['test2'] = df['test'].apply(lambda x: [str(int(x[0])+1), x[1], x[2]])
df['timestamp2'] = df['test2'].apply(lambda x: ':'.join(x))

【讨论】:

  • 如果您还没有将 Pandas 用于其他用途,那么将它添加为像这样的微不足道的依赖项就太过分了。
  • 感谢更新
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-21
  • 2019-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-06-05
相关资源
最近更新 更多