【发布时间】:2020-11-07 19:20:18
【问题描述】:
我有一个这样的数据框:
df.head()
Out[2]:
price sale_date
0 477,000,000 1396/10/30
1 608,700,000 1396/10/30
2 580,000,000 1396/10/03
3 350,000,000 1396/10/03
4 328,000,000 1396/03/18
日期时间超出范围
那么我按照下面将它们作为周期时间
df['sale_date']=df['sale_date'].str.replace('/','').astype(int)
def conv(x):
return pd.Period(year=x // 10000,
month=x // 100 % 100,
day=x % 100, freq='D')
df['sale_date'] = df['sale_date'].str.replace('/','').astype(int).apply(conv)
现在我想按天对它们进行重新采样,如下所示:
df.resample(freq='d', on='sale_date').sum()
但它给了我这个错误:
resample() got an unexpected keyword argument 'freq'
【问题讨论】:
-
pandas.DataFrame.resample没有参数freq,而是rule。另外,如果您没有任何可用时间,您想如何按天汇总?我的意思是,从逻辑上讲,结果将是它们自己的值(每行)。 -
感谢您的回答。我编辑我的数据框。现在我有一些具有同一天的行。所以现在重新采样是正确的..@CainãMaxCouto-Silva
-
它现在给了我这个错误:当前不支持从 level= 或 on= 选择使用 PeriodIndex 重新采样,使用 .set_index(...) 显式设置索引 @CainãMaxCouto-Silva
-
@saeedzali - 试试
df.set_index('sale_date').resample('D')['price'].sum(),但对我来说不起作用。 -
@saeedzali,是的,它似乎还没有实现,我们需要
set_index。但我现在也试过了,它对我也不起作用。可能使用period[D]和resample也没有实现。
标签: python pandas python-datetime