pandas数据帧时间戳列从另一行查找值

时间:2018-03-26 05:19:22

标签: python pandas

我是熊猫新手,需要帮助...... 我有一个包含2列的数据框: 时间戳:包含时间戳的列,如2008-07-07 11:30:25 A列包含0或1的int类型。 我需要找到每一行,如果数据帧中有一行或多行,时间戳大于行的时间戳,且时间戳之间的间隔小于20分钟,而时间戳较大的行在A列中的值为1。必须将新列res添加到每行包含0或1的数据帧 例如:

如果数据框看起来像

Timestamp            A

2008-07-07 11:30:25  0

2008-07-07 11:35:25  1

我需要结果数据框:

Timestamp            A  Res

2008-07-07 11:30:25  0  1

2008-07-07 11:35:25  1  0

我尝试使用apply方法:

我打电话给to_datetime方法:

df['Timestamp'] = pd.to_datetime(df['Timestamp'])
然后我写了一个方法:

def f(ts, df):
    d = len(df[(df['A'] == 1) & ((df['Timestamp'] - ts).seconds <300))]
    df.res= len(d) > 0
然后我打电话给

 df.Timestamp.apply(lambda ts: f(ts,df))

但它不起作用..它说我不能将秒数应用于系列

请帮忙 感谢

2 个答案:

答案 0 :(得分:0)

首先检查数据框的dtypes。确保它不是str格式。同样在你定义的函数中有错误df ['A'](你没有在A之后关闭'。

答案 1 :(得分:0)

check the code here hope that helps

检查屏幕截图中的代码希望有帮助