我有一个如下所示的数据框。某些 year_Quarter
缺少 value
。
import pandas as pd
pd.DataFrame({'Year_Quarter':['2017_Q1', '2017_Q3', '2017_Q4',
'2018_Q1', '2018_Q2', '2018_Q4'],
'Value': [12, 14, 2, 44, 5, 33]})
Year_Quarter Value
0 2017_Q1 12
1 2017_Q3 14
2 2017_Q4 2
3 2018_Q1 44
4 2018_Q2 5
5 2018_Q4 33
我需要的是一个数据框,其中缺少的 Year_Quarter
填充为 0,如下所示:
pd.DataFrame({'Year_Quarter':['2017_Q1', '2017_Q2','2017_Q3', '2017_Q4',
'2018_Q1', '2018_Q2', '2018_Q3','2018_Q4'],
'Value': [12, 0,14, 2, 44, 5, 0, 33]})
Year_Quarter Value
0 2017_Q1 12
1 2017_Q2 0
2 2017_Q3 14
3 2017_Q4 2
4 2018_Q1 44
5 2018_Q2 5
6 2018_Q3 0
7 2018_Q4 33
有人知道怎么做吗?多谢。
最佳答案
Munge df
将 Year_Quarter
变成句点
df = df.assign(
Year_Quarter=
df.Year_Quarter.map(lambda x: pd.Period(x.replace('_', ''), 'Q'))
).set_index('Year_Quarter')
创建一个周期范围内的索引
idx = pd.period_range(df.index.min(), df.index.max(), freq='Q', name=df.index.name)
然后使用reindex
df.reindex(idx, fill_value=0)
Value
Year_Quarter
2017Q1 12
2017Q2 0
2017Q3 14
2017Q4 2
2018Q1 44
2018Q2 5
2018Q3 0
2018Q4 33
关于python - 在 pandas 数据框中用 0 填充缺失年份/季度的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720145/