gpt4 book ai didi

python - 在 pandas 数据框中用 0 填充缺失年份/季度的列

转载 作者:太空宇宙 更新时间:2023-11-04 11:09:09 25 4
gpt4 key购买 nike

我有一个如下所示的数据框。某些 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 dfYear_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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com