通过过滤数据时间详细信息来修改熊猫数据帧单元

时间:2019-04-26 17:41:09

标签: python pandas timestamp

我有一个带有索引,时间戳和一个值的数据集,该值存储在熊猫数据框中的三个单独的列中,例如:

enter image description here

我想过滤时间戳小时等于23的行,并在下一列中的值上添加标量。我如何有效地做到这一点?索引列在数据集中的设置不正确,我不能依靠它。

当前,我正在使用for循环遍历各行,检查时间戳中的小时是否等于23,并修改相应单元格中的值,但这需要很多时间。我尝试如下使用建议的here的.groupby方法,但这似乎不起作用。它对数据进行两次操作,使数据保持不变并抛出SettingWithCopyWarning。这是我尝试的。不过,我不确定这是否是最好的方法。

        for index, data_slice in df.groupby(df["Date"].dt.hour == 23):
            data_slice.loc["value"] += 1

1 个答案:

答案 0 :(得分:2)

为什么要使用groupby,您可以尝试:

df.loc[df['Date'].dt.hour==23, 'value'] += 1