Python 如何在不同的周之间选择数据并将其分组,以便将切片数据帧按周存储在阵列中?,
我想获得以下数据帧的每周高点低点收盘 所以我想根据周数对数据帧进行切片,并存储在一个数组中Python 如何在不同的周之间选择数据并将其分组,以便将切片数据帧按周存储在阵列中?,,python,pandas,dataframe,Python,Pandas,Dataframe,我想获得以下数据帧的每周高点低点收盘 所以我想根据周数对数据帧进行切片,并存储在一个数组中 日期开盘高低点收盘 01-08-2019 | 97.85 | 98.45 | 96.40 97.25 2019年8月2日| 97.15 | 98.95 | 96.75 98.15 2019年8月5日| 98.30 | 98.70 | 94.30 95.65 06-08-2019 | 95.75 | 97.75 | 95.20 97.05 07-08-2019 | 96.80
- 日期开盘高低点收盘
- 01-08-2019 | 97.85 | 98.45 | 96.40 97.25
- 2019年8月2日| 97.15 | 98.95 | 96.75 98.15
- 2019年8月5日| 98.30 | 98.70 | 94.30 95.65
- 06-08-2019 | 95.75 | 97.75 | 95.20 97.05
- 07-08-2019 | 96.80 | 97.70 | 96.05 96.90
- 08-08-2019 | 97.40 | 98.90 | 96.55 97.40
- 09-08-2019 | 97.20 | 98.10 | 96.65 97.30
- 2019年8月12日| 97.20 | 97.25 | 93.40 93.75
- 2019年8月13日| 93.70 | 96.60 | 93.15 96.35
- 14-08-2019 | 95.85 | 96.40 | 94.00 94.45
我希望数据帧中的数据应按周分组。要更改基于时间的数据帧的频率,可以使用。以下代码应该可以工作:
(
df
.assign(Date=lambda x: pd.to_datetime(x['Date'], dayfirst=True)
.set_index('Date')
.asfreq('D')
.resample('W')
.agg({
'High': 'max',
'Low': 'min',
'Open': lambda x: x.dropna().iloc[0],
'Close': lambda x: x.dropna().iloc[-1]
})
)
我得到了NaN值请查看链接我现在在您的数据中看到的是日期不是正确的日期,而是
DD-MM-YYYY
格式的字符串。在将日期列用作索引之前,请将日期列(df['date']=dp.)转换为_datetime(df['date'],dayfirst=True)。我将编辑我的答案以涵盖这一点。您也可以忽略ilocs
上缺少的值。是的,数据是字符串格式的。我改了,谢谢它帮了我