python - 用系列更新 pandas DataFrame 多级索引?
问题描述
给定DataFrame
具有多级索引的 a(在此示例中,“userId”和“日期”是索引的一部分):
clicks
userId date
x 1/1 1
1/2 2
y 1/1 3
1/3 4
z 1/1 4
并且给定一个Series
具有来自 DataFrame 的多索引的第一级的值作为它自己的索引的值:
x Alice
z Charlie
y Bob
如何将 DataFrame 索引的第一级更新为 Series 中的值? 生成的 DataFrame 看起来像
Alice 1/1 1
1/2 2
Bob 1/1 3
1/3 4
Charlie 1/1 4
注意:我不能依赖 Series 的顺序与多索引的第一级的顺序相同(例如,Series 索引是 ['x', 'z', 'y'] 而 DataFrame 的第一级是['x', 'y', 'z'])
预先感谢您的考虑和回复。
解决方案
使用 Series 映射关卡,然后重新分配索引。
import pandas as pd
df.index = pd.MultiIndex.from_arrays(
[df.index.get_level_values('userId').map(s), # s is your Series
df.index.get_level_values('date')])
clicks
userId date
Alice 1/1 1
1/2 2
Bob 1/1 3
1/3 4
Charlie 1/1 4
推荐阅读
- javascript - 如何修改 CakePHP 3.6 中的默认日期选择器?
- reactjs - Webpack 生产模式
- python - 如何使用一个月内的日期范围提取特征?
- python - 获取`ndarray`的每个切片中最小值的索引
- php - cURL PHP:将照片上传到 Instagram
- java - JavaFX 代码无法在 intellij-IDEA 中正确编译。当我尝试构建应用程序时,它向我抛出了多个错误
- c# - 来自 png 图像的平滑动画(视频)
- android - 运行 Android Studio 时出错 - “找不到 com.android.tools.build:gradle:3.2.1”
- c# - 在 C# 中创建一个与另一个字典强耦合的字典
- html - 自动调整列表中图像的高度以始终保持在一行