gpt4 book ai didi

python - Pandas :如何填补缺失的年、周列?

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

我有一个数据框 [Year] 和 [Week] 列有时会丢失。我有另一个数据框,它是一个供引用的日历,我可以从中获取这些缺失值。如何使用 pandas 填充这些缺失的列?

我尝试使用 reindex 来设置它们,但我收到以下错误

ValueError:缓冲区的维数错误(预期为 1,得到 2)

import pandas as pd

d1 = {'Year': [2019,2019,2019,2019,2019], 'Week':[1,2,4,6,7], 'Value':
[20,40,60,75,90]}
d2 = {'Year': [2019,2019,2019,2019,2019,2019,2019,2019,2019,2019], 'Week':[1,2,3,4,5,6,7,8,9,10]}

df1 = pd.DataFrame(data=d1)
df2 = pd.DataFrame(data=d2)

df1 = df1.set_index(['Year', 'Week'])
df2 = df2.set_index(['Year', 'Week'])

df1 = df1.reindex(df2, fill_value=0)

print(df1)

最佳答案

你应该添加 index 所以 df2.index

df1.reindex(df2.index,fill_value=0)
Out[851]:
Value
Year Week
2019 1 20
2 40
3 0
4 60
5 0
6 75
7 90

df2.index.difference(df1.index)
Out[854]:
MultiIndex(levels=[[2019], [3, 5]],
labels=[[0, 0], [0, 1]],
names=['Year', 'Week'],
sortorder=0)

更新

s=df1.reindex(df2.index)
s[s.bfill().notnull().values].fillna(0)
Out[877]:
Value
Year Week
2019 1 20.0
2 40.0
3 0.0
4 60.0
5 0.0
6 75.0
7 90.0

关于python - Pandas :如何填补缺失的年、周列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54445811/

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