查询pandas中的timedelta列,并过滤行

时间:2018-01-22 07:10:47

标签: sql pandas filtering flags timedelta

我在熊猫中有一列timedelta。它的格式为x天00:00:00。我想过滤掉并标记值> = 30分钟的行。我不知道如何使用熊猫这样做。我试过布尔和if语句,但它没有用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以total_secondstimedelta转换为秒,并与标量进行比较:

df = df[df['col'].dt.total_seconds() < 30]

或与Timedelta比较:

df = df[df['col'] < pd.Timedelta(30, unit='s')]

<强>示例

df = pd.DataFrame({'col':pd.to_timedelta(['25:10:01','00:01:20','00:00:20'])})
print (df)
              col
0 1 days 01:10:01
1 0 days 00:01:20
2 0 days 00:00:20

df = df[df['col'].dt.total_seconds() < 30]
print (df)
       col
2 00:00:20