import pandas as pd
timev = ['2021-11-01 00:00:00', '2021-11-01 02:00:00', '2021-11-01 03:00:00', '2021-11-01 04:00:00', '2021-11-01 01:00:00']
valuev = [1, 2, 3, 4, 5]
df = pd.DataFrame({'datetime': timev, 'value': valuev})
print(df)
df_grp_h = df.groupby(by='datetime')
for i, data_i in df_grp_h:
print(i)
print(df['datetime'].unique())
结果:
结果分析:
groupby自带了排序,因为groupby函数中有sort参数,且默认为True,对groupby分组后新的dataframe中索引进行排序,sort=True为升序。
而unique是提取唯一值的,函数本身不带排序功能。
所以要让两个结果一致,就需要在unique操作之前先对series进行.sort_values()排序。即最后一行代码应修改为
print(df['datetime'].sort_values().unique())
修改后的结果为: