我想使用 matplotlib 在我的时间序列数据的最小值和最大值之间进行着色。下面是一个数据示例。如何检索最小值和最大值(请注意,下面给出的时间是字符串格式,但我有前一天 00:00:00 的时间,以秒为单位,所以我的时间为 5902761,5902770(
例如
index time value
1 08:00:00 100
2 08:00:01 100
3 08:00:01 101
4 08:00:02 100
5 08:00:02 102
6 08:00:02 101
我想要的是以下内容
index time min_value max_value
1 08:00:00 100 100
2 08:00:01 100 101
3 08:00:02 100 102
将aggregate
与rename
一起使用:
d = {'min':'min_value','max':'max_value'}
df = df.groupby('time')['value'].agg([min, max]).reset_index().rename(columns=d)
print (df)
time min_value max_value
0 08:00:00 100 100
1 08:00:01 100 101
2 08:00:02 100 102
因为:
df = df.groupby('time')['value'].agg({'min_value':'min','max_value':'max'})
未来警告:对序列使用字典进行聚合 已弃用,并将在未来版本中删除 df = df.groupby('time'(['value'].agg({'min':'min_value','max':'max_value'}(