如何解决如何使用 Pandas 每半小时将其他列包含在数据框中以进行每日重新采样?
我有一个以半小时为间隔格式化的天气数据框(简化如下):
df = pd.DataFrame({ 'date': ['2019-01-01 09:30:00','2019-01-01 10:00','2019-01-02 04:30:00','2019-01-02 05:00:00','2019-01-04 02:00:00'],'temp': [15.2,18.0,4.5,6.5],'windSpeedMax': [20,90,35,45,15],'windSpeedMax_Dir':['NE','SE','SW','W','S']})
我的目标是每天获得最大的风和风的方向。使用熊猫:
df['date'] = pd.to_datetime(df['date'])
df = df[~df['windSpeedHigh'].isin(['--'])]
df['windSpeedHigh'] = pd.to_numeric(df['windSpeedHigh'])
df_daily = df.resample('D',on='date').agg({'windSpeedHigh': max})
我的结果是:
windSpeedHigh
date
2019-01-01 90.0
2019-01-02 45.0
2019-01-03 NaN
2019-01-04 15.0
只求每天最大风速
我的预期结果还需要包括最大风向:
windSpeedHigh windSpeedHigh
date
2019-01-01 90.0 SE
2019-01-02 45.0 W
2019-01-03 NaN NaN
2019-01-04 15.0 S
解决方法
你可以groupby().idxmax()
:
idx = df.groupby(df['date'].dt.normalize())['windSpeedHigh'].idxmax()
df.loc[idx]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。