我有一个由datetime_index和一些值组成的pandas系列对象,如下所示:
df
2020-01-01 00:00:00 39.6
2020-01-01 00:15:00 35.6
2020-01-01 00:30:00 35.6
2020-01-01 00:45:00 39.2
2020-01-01 01:00:00 56.7
...
2020-12-31 23:45:00 56.3
我加入了一些值,这df
与.append()
。由于未排序,因此我通过对其索引进行了排序.sort_index()
。但是,我想实现的是我只想对给定的日期进行排序。
因此,例如,我将一些值添加到day 2020-01-01
,并且由于添加的值将在一天结束之后,因此2020-01-01
我只需要对一年的第一天进行排序。并非所有的DF。
这是一个示例,NaN值添加有.append()
:
df
2020-01-01 00:00:00 39.6
2020-01-01 00:15:00 35.6
...
2020-01-01 23:45:00 34.3
2020-01-01 15:00:00 NaN
...
2020-12-31 23:45:00 56.3
现在我不能df.sort_index()
,因为其他日子会中断。这就是为什么我只想申请.sort_index()
一天2020-01-01
。我怎么做?
我尝试过的很远但不起作用:
df.loc['2020-01-01'] = df.loc['2020-01-01'].sort_index()
过滤2020-01-01
几天的行,排序并与不匹配的行合并:
mask = df.index.normalize() == '2020-01-01'
df = pd.concat([df[mask].sort_index(), df[~mask]])
print (df)
2020-01-01 00:00:00 39.6
2020-01-01 00:15:00 35.6
2020-01-01 15:00:00 NaN
2020-01-01 23:45:00 34.3
2020-12-31 23:45:00 56.3
Name: a, dtype: float64
另一个想法:
df1 = df['2020-01-01'].sort_index()
df = pd.concat([df1, df.drop(df1.index)])
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句