为什么我的多索引数据框有重复的索引值?

2023-12-22

我有以下名为 df 的 pd.DataFrame:

                   date     cluster_label        value
0   2018-11-14 02:16:22                 0          1.5
1   2018-11-14 02:16:22                 0          7.0
2   2018-11-14 02:16:22                 0          2.5
3   2018-11-14 02:16:22                 1          3.0
4   2018-11-14 02:16:22                 1          0.5
5   2018-11-14 02:16:22                 2          1.0

在设置多级索引或数据框之前,我执行以下命令将日期列转换为仅包含月份和年份值:

self.df['date'] = self.df['date'].dt.to_period('M')
self.df.set_index(['cluster_label', 'date'], inplace=True)

现在,输出如下:

                           value
cluster_label date                                                                  
0              2018-11     1.5
               2018-11     7.0
               2018-11     2.5
1              2018-11     3.0
               2018-11     0.5
2              2018-11     1.0

但这是错误的。我希望输出的日期列没有重复的索引。输出应如下所示:

                           value
cluster_label date                                                                  
0              2018-11     1.5
                           7.0
                           2.5
1              2018-11     3.0
                           0.5
2              2018-11     1.0

我做错了什么以及如何更改我的代码以获得所需的输出?


一种选择是附加一个cumcount教育水平:

df.set_index(df.groupby(level=[0,1]).cumcount(), append=True)

                         value
cluster_label date            
0             2018-11 0    1.5
                      1    7.0
                      2    2.5
1             2018-11 0    3.0
                      1    0.5
2             2018-11 0    1.0

Where,

df.set_index(df.groupby(level=[0,1]).cumcount(), append=True).index 
# MultiIndex(levels=[[0, 1, 2], [2018-11], [0, 1, 2]],
#            labels=[[0, 0, 0, 1, 1, 2], [0, 0, 0, 0, 0, 0], [0, 1, 2, 0, 1, 0]],
#            names=['cluster_label', 'date', None])

另一个选择(我不推荐)是显式屏蔽这些值并重置索引。

u = np.where(df.index.duplicated(), '', df.index.get_level_values(1))
df.index = pd.MultiIndex.from_arrays([df.index.get_level_values(0), u])

df
                       value
cluster_label               
0             2018-11    1.5
                         7.0
                         2.5
1             2018-11    3.0
                         0.5
2             2018-11    1.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的多索引数据框有重复的索引值? 的相关文章

随机推荐

  • MySQL 日期格式

    当我在mysql中创建一个表并创建一个日期类型的字段时 它存储的日期如0000 00 00 是否可以将格式更改为 d m Y Go to MySQL 参考 10 5 数据类型存储要求 http dev mysql com doc refma
  • 评估球拍响应/xexpr 中的变量

    我正在尝试在 Racket 中制作一个简单的书签网络应用程序 它的目的是接收一个 url 作为 CGI 参数 现在 我只是试图通过反射它来确认我收到了它 define start request response xexpr let bin
  • 如何在 R 中的字符串中的每个单词周围添加引号?

    我有一个字符串 words lt Monday Tuesday Wednesday Thursday Friday 我只需要为每个单词添加引号 Monday Tuesday Wednesday Thursday Friday 得到长度为 5
  • 以编程方式检查 gem 是否在捆绑包中?

    在运行时 捆绑器设置完成后 并且groups http bundler io v1 7 groups html应用后 以编程方式检查给定值是否有效的最佳方法是什么 gem name是在捆绑包中吗 通过阅读源码 我发现Bundler defi
  • 在查询结果上加入列表时出现 Linq 异常

    我有一个清单 List
  • 使用openMP并行获取最小元素索引

    我尝试编写这段代码 float theArray the array to find the minimum value int index i float thisValue min index 0 min theArray 0 prag
  • 从java应用程序下载文件

    您好 我需要一些帮助才能从我的 java 应用程序下载文件 URL 为 http my site com UICFEWebroot QueryOneDateAllCur lang ita rate 0 initDay 11 initMont
  • 在 C++ 中创建一个大数组[重复]

    这个问题在这里已经有答案了 可能的重复 大数组上的分段错误 https stackoverflow com questions 1847789 segmentation fault on large array sizes Hi all 我
  • 序列化表单子组以进行 Ajax 提交到 ASP.NET MVC

    我正在创建一个应用程序 可以在其中创建注释 并且可以将一对多零件添加到注释中 该应用程序适用于客户要求拖拉机零件的拖拉机报废场 我正在使用 Jquery AJAX 通过创建视图加载弹出模式 我正在创建一个注释 其各个部分位于一个创建视图中
  • 如何设置 TFS2010 以使用 Jenkins 构建服务器

    我们使用 Jenkins 作为 CI 构建服务器 但已转移到 TFS 来完成所有项目管理工作 用户故事 开发任务 测试用例 报告 自动化 如何设置 TFS2010 以使用我们的 Jenkins 构建服务器 实际上更像是相反的情况 您需要为
  • iPhone - UITableViewCell 高度变化的平滑动画,包括内容更新[重复]

    这个问题在这里已经有答案了 可能的重复 当 UITableViewCell 被选中时 你能用动画来改变高度吗 https stackoverflow com questions 460014 can you animate a height
  • C# 归并排序性能

    只是简单说明一下 这不是家庭作业 我只是想温习我的算法 我正在使用 C 中的 MergeSort 并且编写了一个可以基于泛型进行排序的递归方法 class SortAlgorithms public T MergeSort
  • .NET WinForms - 如何监听系统注销、用户锁定、休眠启动和系统恢复的事件?

    我想监听 Windows Forms NET 应用程序中的以下系统范围事件 注销 锁窗户 休眠启动 睡眠开始 系统已恢复 这些可能吗 Thanks 您需要查看 WMI Windows 媒体工具 您需要为上述事件创建事件观察者 http ms
  • 将值放在直方图的箱的中心

    我有以下代码来绘制直方图 中的值time new是发生某事的时间 time new 9 23 19 9 1 2 19 5 4 20 23 10 20 5 21 17 4 13 8 13 6 19 9 14 9 10 23 19 23 20
  • 单击时关闭对话框(任何地方)

    是否有默认选项可以通过单击屏幕上的某处而不是关闭图标来关闭 jQuery 对话框 编辑 这是我编写的一个插件 它扩展了 jQuery UI 对话框以包括 单击外部时关闭以及其他功能 https github com jasonday jQu
  • 会话超时不起作用+ cakephp

    我想将会话超时增加到 24 小时左右 为此我在网上进行了搜索 但没有任何帮助 目前 我的网站在该会话到期后将会话时间设置为大约 40 分钟 我想将其设置为 24 小时 在我的 core php 中我添加了这些行 Configure writ
  • Azure 内存资源耗尽

    我目前在 Azure 中托管了几十个网站 最近开始在每个 Web 应用程序的门户刀片中看到 内存资源耗尽 警告 我在两个 S3 标准 大型 应用程序服务计划中托管我的网站 我在所有网站上都会收到警告 无论它们使用哪个应用程序服务计划 有趣的
  • 如何在 4.0+ 上更改 Edittext 下划线的颜色?

    我的应用程序 Theme Holo 有 但我想更改 edittext 下划线边框的颜色 我不想在编辑文本周围有完整的边框 我只想更改 4 0 版本上 edittext 布局的颜色 我怎样才能做到这一点 你可以使用9patch 这个资源是一个
  • 如何处理二进制文件格式的可移植性问题

    我正在设计一种二进制文件格式来存储字符串 不终止 null 以节省空间 和二进制数据 我 处理小 大端系统的最佳方法是什么 i a 使用 ntohl htonl 将所有内容转换为网络字节顺序并返回是否有效 二 打包结构在 x86 x64 和
  • 为什么我的多索引数据框有重复的索引值?

    我有以下名为 df 的 pd DataFrame date cluster label value 0 2018 11 14 02 16 22 0 1 5 1 2018 11 14 02 16 22 0 7 0 2 2018 11 14 0