Python 创建每日滚动电流最高值系列
我有以下数据,其中包含Python 创建每日滚动电流最高值系列,python,pandas,Python,Pandas,我有以下数据,其中包含值、时间和日期列: 所需输出 我想创建一个新的系列,捕获当前最高值的行,如下所示: 这将每天查看值列,并捕获最近最高的值 在1/1/00的9:00,值为2,因此这是最高值 在1/1/00的17:00,值为3,因此我们捕捉到了这一点 请参见下面的df.to_dict()来重现这一点: df.to_dict() {'Date': {0: Timestamp('2000-01-01 00:00:00'), 1: Timestamp('2000-01
值
、时间
和日期
列:
所需输出
我想创建一个新的系列,捕获当前最高值的行,如下所示:
这将每天查看值
列,并捕获最近最高的值
- 在1/1/00的9:00,
值为2,因此这是最高值
- 在1/1/00的17:00,
值为3,因此我们捕捉到了这一点
请参见下面的df.to_dict()来重现这一点:
df.to_dict()
{'Date': {0: Timestamp('2000-01-01 00:00:00'),
1: Timestamp('2000-01-01 00:00:00'),
2: Timestamp('2000-01-01 00:00:00'),
3: Timestamp('2000-01-02 00:00:00'),
4: Timestamp('2000-01-02 00:00:00'),
5: Timestamp('2000-01-02 00:00:00'),
6: Timestamp('2000-01-03 00:00:00'),
7: Timestamp('2000-01-03 00:00:00'),
8: Timestamp('2000-01-03 00:00:00'),
9: Timestamp('2000-01-04 00:00:00'),
10: Timestamp('2000-01-04 00:00:00'),
11: Timestamp('2000-01-04 00:00:00')},
'Time': {0: datetime.time(9, 0),
1: datetime.time(13, 0),
2: datetime.time(17, 0),
3: datetime.time(9, 0),
4: datetime.time(13, 0),
5: datetime.time(17, 0),
6: datetime.time(9, 0),
7: datetime.time(13, 0),
8: datetime.time(17, 0),
9: datetime.time(9, 0),
10: datetime.time(13, 0),
11: datetime.time(17, 0)},
'Value': {0: 2,
1: 2,
2: 3,
3: 2,
4: 3,
5: 3,
6: 1,
7: 1,
8: 1,
9: 3,
10: 1,
11: 2}}
IIUC,您需要使用来获取值
列的累积最大值,然后在将重复条目与w.r.t日期
列分组后删除重复条目
grouped = df.groupby('Date').apply(lambda x: x['Value'].cummax() \
.drop_duplicates()) \
.reset_index()
print(df[df.index.isin(grouped['level_1'])])
Date Time Value
0 2000-01-01 09:00:00 2
2 2000-01-01 17:00:00 3
3 2000-01-02 09:00:00 2
4 2000-01-02 13:00:00 3
6 2000-01-03 09:00:00 1
9 2000-01-04 09:00:00 3