pandas - 如果 Pandas 数据框中没有,Multindex 添加零值
问题描述
我有一个带有 multiindex('date', 'class') 的 pandas (v.0.23.4) 数据框。
Col_values
date class
2019-04-30 0 324
1 6874
2 44
3 5
4 15
2019-05-31 0 393
1 6534
2 64
3 1
4 22
2019-06-30 0 325
1 5899
2 48
4 7
在 '2019-06-30' 中缺少第 3 类,因为没有数据。我想要的是在多索引中添加类 3,并在 Col_values 列中自动添加零值。
解决方案
DataFrame.unstack
与fill_value=0
一起使用DataFrame.stack
:
df = df.unstack(fill_value=0).stack()
print (df)
Col_values
date class
2019-04-30 0 324
1 6874
2 44
3 5
4 15
2019-05-31 0 393
1 6534
2 64
3 1
4 22
2019-06-30 0 325
1 5899
2 48
3 0
4 7
另一种解决方案是DataFrame.reindex
使用MultiIndex.from_product
:
mux = pd.MultiIndex.from_product(df.index.levels, names=df.index.names)
df = df.reindex(mux, fill_value=0)
print (df)
Col_values
date class
2019-04-30 0 324
1 6874
2 44
3 5
4 15
2019-05-31 0 393
1 6534
2 64
3 1
4 22
2019-06-30 0 325
1 5899
2 48
3 0
4 7
推荐阅读
- recaptcha - 是否可以使用基于文本的验证码将文本数字化?
- json - json.Compact 是否也验证 json?
- python - 如何正确提及用户?
- python - 用于简单字母图像的 PyTorch 分类器:CNN 模型设计问题
- python - 在多个类之间发送消息时如何正确构造 Python 应用程序
- firebase - 如何使用颤振一次将多个文件发送到firebase
- sql - 无法计算客人在 2 家不同餐厅的出现次数并显示客人姓名
- json - Microsoft 列表(共享点列表)- 多个 if 语句的条件格式问题
- python-3.x - Shard ID %s 心跳被阻塞超过 10s 秒。问题
- c++ - 在 .ipp 文件中定义具有模板成员函数的类