Python中的Excel SUMIFS数组

Python中的Excel SUMIFS数组,python,pandas,Python,Pandas,我有一张价格时间序列数据的Excel表格,每天由6个小时周期组成。我正在尝试使用Python和Pandas,我已经设置并正在使用它们,导入一个CSV,然后从中创建一个df。这很好,这只是我正在努力解决的排序代码。在excel中,我可以使用Sum(sumifs)数组函数来实现这一点,但我希望它能在Python/Pandas中工作 我希望从数据中生成一个新的时间序列,其中每天我只得到第3到第5个时段(包括第3到第5个时段)的平均价格,不包括其他时段。我正在努力解决这个问题 我正在寻找的原始数据和结果

我有一张价格时间序列数据的Excel表格,每天由6个小时周期组成。我正在尝试使用Python和Pandas,我已经设置并正在使用它们,导入一个CSV,然后从中创建一个df。这很好,这只是我正在努力解决的排序代码。在excel中,我可以使用Sum(sumifs)数组函数来实现这一点,但我希望它能在Python/Pandas中工作

我希望从数据中生成一个新的时间序列,其中每天我只得到第3到第5个时段(包括第3到第5个时段)的平均价格,不包括其他时段。我正在努力解决这个问题

我正在寻找的原始数据和结果示例如下:

您需要按过滤,然后聚合
平均值

df = df[df['Period'].between(3,5)].groupby('Date', as_index=False)['Price'].mean()
您需要按过滤,然后聚合
平均值

df = df[df['Period'].between(3,5)].groupby('Date', as_index=False)['Price'].mean()

你的意思是,平均价格将仅在周期等于3或5的行上计算?因此,例如,对于2017年1月1日,我希望平均值(周期=3、4和5),第二天应相同,以此类推。因此,在结果系列中,您每天有一个值,仅为当天时段3到5的平均值。一个小建议-将数据更改为文本,以便可能将其复制以防止否决票。您的意思是平均价格将仅在时段等于3或5的行上计算?例如,对于2017年1月1日,我希望平均值(周期=3、4和5),第二天应该相同,以此类推。因此,在结果系列中,您每天有一个值,仅为当天3到5个周期的平均值。一个小建议-将数据更改为文本,以便可能将其复制以防止向下投票。Genius谢谢!抱歉,我如何让新的数据框显示日期作为索引?@Reno-对于
系列
,仅删除
as_index=False
,如果需要数据框,则使用
df[df['Period'].between(3,5)].groupby('Date')['Price'].mean().to_frame()
我认为我有问题,因为输出中的日期字段与预期不符。我想我需要将“日期”字段的数据类型设置为日期。我该怎么做?Thanks@Reno-使用
df['Date']=pd.to_datetime(df['Date'])
Genius谢谢!抱歉,我如何让新的数据框显示日期作为索引?@Reno-对于
系列
,仅删除
as_index=False
,如果需要数据框,则使用
df[df['Period'].between(3,5)].groupby('Date')['Price'].mean().to_frame()
我认为我有问题,因为输出中的日期字段与预期不符。我想我需要将“日期”字段的数据类型设置为日期。我该怎么做?Thanks@Reno-使用
df['Date']=pd.to_datetime(df['Date'])