如何在 Pandas 数据框中获取最后一行日期时间?

How to grab last row of datetime in Pandas dataframe?

II 目前有一个非常大的 .csv,有 200 万行。我读过 csv,只有 2 列,数字和时间戳(在 unix 中)。我的目标是获取每天的最后一个最大数字(例如 1/1/2021、1/2/2021 等)

我已将 unix 转换为 datetime 并使用了 df.groupby('timestamp').tail(1) 但我仍然无法 return 每天最后一行。我是不是用错了groupby?

import pandas as pd

def main():
    df = pd.read_csv('blocks.csv', usecols=['number', 'timestamp'])
    print(df.head())
    df['timestamp'] = pd.to_datetime(df['timestamp'],unit='s')
    x = df.groupby('timestamp').tail(1)
    print(x)

if __name__ == '__main__':
    main()

期望的输出:

数字 时间戳

11,509,218 2021-01-01

11,629,315 2021-01-02

11,782,116 2021-01-03

12,321,123 2021-01-04

...

你似乎没有指定聚合函数,也没有指定聚合频率(小时、天、分钟?) 我的看法是

df.resample("D", on="timestamp").max()

有几种方法可以按时间分组,或者

df.groupby(pd.Grouper(key='timestamp', axis=0, 
                  freq='D', sort=True)).max()

此致

“问题”出在石斑鱼上,使用.dt.date正确分组(假设你的数据已经排序):

x = df.groupby(df['timestamp'].dt.date).tail(1)
print(x)