pandas重采样处理缺失数据
我正在使用pandas处理每月的数据,这些数据有一些缺失值。我希望能用重采样的方法来计算年度统计数据,但只针对那些没有缺失数据的年份。
这里有一些代码和输出示例:
import pandas as pd
import numpy as np
dates = pd.date_range(start = '1980-01', periods = 24,freq='M')
df = pd.DataFrame( [np.nan] * 10 + range(14), index = dates)
如果我进行重采样,得到的结果是:
In [18]: df.resample('A')
Out[18]:
0
1980-12-31 0.5
1981-12-31 7.5
我希望在1980年12月31这个索引上得到一个np.nan,因为那一年并没有每个月的数据。我尝试调整'how'这个参数,但没有成功。
我该怎么做才能实现这个呢?
1 个回答
2
我相信还有更好的方法,但在这种情况下,你可以使用:
df.resample('A', how=[np.mean, pd.Series.count, len])
然后删除所有那些 count != len
的行。