python - 熊猫替换多索引行中的值
问题描述
所以,我有一个 MultiIndex DataFrame,我无法找出行来修改行索引值。
在此示例中,我想设置 c = 1,其中“a”索引为 4:
import pandas as pd
import numpy as np
df = pd.DataFrame({('colA', 'x1'): {(1, np.nan, 0): np.nan, (4, np.nan, 0): np.nan},
('colA', 'x2'): {(1, np.nan, 0): np.nan, (4, np.nan, 0): np.nan},
('colA', 'x3'): {(1, np.nan, 0): np.nan, (4, np.nan, 0): np.nan},
('colA', 'x4'): {(1, np.nan, 0): np.nan, (4, np.nan, 0): np.nan}})
df.index.set_names(['a', 'b', 'c'], inplace=True)
print(df)
colA
x1 x2 x3 x4
a b c
1 NaN 0 NaN NaN NaN NaN
4 NaN 0 NaN NaN NaN NaN
期望的输出:
colA
x1 x2 x3 x4
a b c
1 NaN 0 NaN NaN NaN NaN
4 NaN 1 NaN NaN NaN NaN
任何帮助表示赞赏。
解决方案
假设我们从df
.
x = df.reset_index()
x.loc[x[x.a == 4].index, 'c'] = 1
x = x.set_index(['a', 'b', 'c'])
print(x)
colA
x1 x2 x3 x4
a b c
1 NaN 0 NaN NaN NaN NaN
4 NaN 1 NaN NaN NaN NaN
推荐阅读
- python - 反转字符串但将字符对保持在一起
- amazon-lex - 每次自定义槽的内容发生变化时,是否必须重新构建/发布 Amazon Lex 实例?
- javascript - 仅使用 CSS 将 DOM 项目滚动到视图中
- vba - 更新几个图表系列名称
- c - 为什么我会收到此错误和警告?错误和警告在描述中
- uwp - 如何删除不是数字的文本框中的字符?
- java - Java 代码无法使用创建的临时文件(执行 shell 脚本的进程没有输出响应)
- python - 生成 RSA 并写入文件
- java - UnsupportedOperationException 使用 Webflux 和 Spring Boot 和 Google Cloud Storage 上传 MultiPart 文件
- java - 使用java 8从列表中获取子类的第一个实例