我有一个这种格式的数据帧。在
country_txt multiple success nkill nwound property dates \
1970Q1 Italy 0 1 0.0 0.0 0 1970-01-01
1970Q1 Italy 0 0 0.0 0.0 1 1970-01-01
1970Q4 Italy 0 0 0.0 0.0 1 1970-04-01
1971Q1 Italy 0 1 0.0 0.0 1 1971-01-01
1971Q3 Italy 0 1 0.0 0.0 1 1971-03-01
这个数据帧的索引是我使用PeriodIndex
创建的季度之后的年份。dates
列也象征着年和季度,月的哪一天无关紧要。我想总结一下每个季度的其他专栏文章。通常这不是问题,因为我可以做italy.groupby('dates').sum()
。但是,我得到的输出是
现在的问题是,我要为每一个没有出现的季度填充缺失的值,这样输出就会变成这样
multiple success nkill nwound property
dates
1970-01-01 0 1 0.0 0.0 1
1970-02-01 0 0 0.0 0.0 0
1970-03-01 0 0 0.0 0.0 0
1970-04-01 0 0 0.0 0.0 1
1971-01-01 0 1 0.0 0.0 1
我查阅了之前的问题,发现人们建议我这样做。问题是,这会给我的数据增加很多行,因为我每天都会有数据,这意味着我必须重新找到一种方法,将数据按季度相加。那么,我如何实现这个目标,而不创建所有这些每日0,并找到一个方法来总结每季度的一切呢?在
作为参考,dates
列是通过首先将原始months列更改为1-4(表示季度)的值创建的,然后通过这样做将其转换为timedelta格式
df['dates'] = df.iyear.astype(str).str.cat(df.imonth.astype(str))
df['dates'] = pd.to_datetime(df['dates'], format = '%Y%m')
更新:解析字符串索引中的实际日期。它也适用于老版熊猫:
旧答案:(假设
dates
列包含实际日期)。它使用了新的Pandas 0.19.0特性:.resample(..., on='column_name')
:试试这个:
^{pr2}$或重新抽样“每月”:
相关问题 更多 >
编程相关推荐