我不知道为什么我不能使用asfreq()?

时间:2017-03-22 15:22:28

标签: python pandas

input_number=pd.read_csv(r'C:\Users\champion\Desktop\data_science_race\104.1~106.1\input_output\input\input_number.csv'
                         ,thousands=',',encoding='big5')
dates=pd.DatetimeIndex(input_number['date'])
input_number.index=dates
business_day=input_number.resample('B').asfreq()
  

ValueError:无法从重复轴重新索引

这是我的数据。

enter image description here

我不明白为什么我不能使用asfreq。因为我使用了另一个成功执行的类似数据。

1 个答案:

答案 0 :(得分:0)

您没有正确使用重新采样。

如果您想改变频率,请使用.asfreq,例如:

import pandas as pd
import numpy as np

rng = pd.date_range('1/1/2011', periods=72, freq='D')
ts = pd.Series(np.random.randn(len(rng)), index=rng)

ts.asfreq('B')
Out[25]: 
2011-01-03    0.518565
2011-01-04    0.104616
2011-01-05    0.030174
2011-01-06    0.623529
2011-01-07    0.329330
2011-01-10   -0.012481
2011-01-11    1.119546
2011-01-12   -0.831261
2011-01-13   -0.137491

重新取样是其他内容,它会重新取样您的数据,您可以在该重新取样上应用函数。所以你可以每周重新采样并检查那一周的最后一个值:

ts.resample('W').last()
Out[26]: 
2011-01-02    0.401549
2011-01-09    0.800291
2011-01-16    0.843909
2011-01-23   -0.022525
2011-01-30   -0.225117
2011-02-06    0.338157
2011-02-13   -0.570128
2011-02-20    0.213254
2011-02-27    0.130544
2011-03-06   -1.652924
20

11-03-13    0.220274
Freq: W-SUN, dtype: float64