重新索引不完整的多级数据帧中的第二级以使其完整,在缺失的行上插入 NAN

2024-04-23

我需要重新索引 pandas 数据框的第二级,以便第二级成为一个(完整)列表0,...,(N-1)对于每个一级索引。

  • 我尝试使用艾伦/海登的方法 https://stackoverflow.com/questions/20104874/reindex-sublevel-of-pandas-dataframe-multiindex,但不幸的是它只创建一个包含与先前存在的行数一样多的索引。
  • 我想要的是对于每个新索引,都会插入新行(具有 nan 值)。

Example:

df = pd.DataFrame({
  'first': ['one', 'one', 'one', 'two', 'two', 'three'], 
  'second': [0, 1, 2, 0, 1, 1],
  'value': [1, 2, 3, 4, 5, 6]
})
print df

   first  second  value
0    one       0      1
1    one       1      2
2    one       2      3
3    two       0      4
4    two       1      5
5  three       1      6

# Tried using Allan/Hayden's approach, but no good for this, doesn't add the missing rows    
df['second'] = df.reset_index().groupby(['first']).cumcount()
print df
   first  second  value
0    one       0      1
1    one       1      2
2    one       2      3
3    two       0      4
4    two       1      5
5  three       0      6

我想要的结果是:

   first  second  value
0    one       0      1
1    one       1      2
2    one       2      3
3    two       0      4
4    two       1      5
4    two       2      nan <-- INSERTED
5  three       0      6
5  three       1      nan <-- INSERTED
5  three       2      nan <-- INSERTED

我认为你可以先设置列first and second作为多级索引,然后reindex.

# your data
# ==========================
df = pd.DataFrame({
  'first': ['one', 'one', 'one', 'two', 'two', 'three'], 
  'second': [0, 1, 2, 0, 1, 1],
  'value': [1, 2, 3, 4, 5, 6]
})

df

   first  second  value
0    one       0      1
1    one       1      2
2    one       2      3
3    two       0      4
4    two       1      5
5  three       1      6

# processing
# ============================
multi_index = pd.MultiIndex.from_product([df['first'].unique(), np.arange(3)], names=['first', 'second'])

df.set_index(['first', 'second']).reindex(multi_index).reset_index()

   first  second  value
0    one       0      1
1    one       1      2
2    one       2      3
3    two       0      4
4    two       1      5
5    two       2    NaN
6  three       0    NaN
7  three       1      6
8  three       2    NaN
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

重新索引不完整的多级数据帧中的第二级以使其完整,在缺失的行上插入 NAN 的相关文章

  • 确定非空列表条目是否“连续”的 Pythonic 方法

    我正在寻找一种方法来轻松确定列表中所有非 None 项目是否出现在单个连续切片中 我将使用整数作为非 None 项目的示例 例如 列表 None None 1 2 3 None None 满足我对连续整数条目的要求 相比之下 1 2 Non
  • 将 python 嵌入到我的应用程序中时出现内存泄漏

    以下程序与 python 2 7 13 链接并在 Windows 10 上运行时缓慢但稳定地泄漏内存 include
  • 快速NLTK解析成语法树

    我正在尝试将数百个句子解析为语法树 我需要快速完成 问题是如果我使用 NLTK 那么我需要定义一个语法 而我不知道我只知道它会是英语 我尝试使用this https github com emilmont pyStatParser统计解析器
  • Matplotlib 行高表属性

    我已经尝试了我能找到的所有命令和文档 如何在这里设置行的高度 from pylab import Create a figure fig1 figure 1 ax1 1 fig1 add subplot 111 Add a table wi
  • 如何设置 1dCNN+LSTM 网络(Keras)的输入形状?

    我有以下想法要实施 Input gt CNN gt LSTM gt Dense gt Output 输入有 100 个时间步长 每个步长有一个 64 维特征向量 A Conv1D层将在每个时间步提取特征 CNN 层包含 64 个滤波器 每个
  • 如何修复错误嵌套/未闭合的 HTML 标签?

    我需要通过使用正确的嵌套顺序关闭任何打开的标签来清理用户提交的 HTML 我一直在寻找一种算法或Python代码来做到这一点 但除了PHP等中的一些半生不熟的实现之外 还没有找到任何东西 例如 类似的东西 p p ul li Foo bec
  • 为什么 Keras 的 train_on_batch 在第二个 epoch 产生零损失和准确率?

    我正在使用一个大数据集 所以我尝试使用 train on batch 或适合 epoch 1 model Sequential model add LSTM size input shape input shape return seque
  • 使用 Python 发布 XML 文件

    我是 Python 新手 需要一些帮助 我的目标是向 URL 发送一些带有 post 请求的 XML 这将触发发送 SMS 我有一个小的 XML 文档 我想将其发布到 URL 我可以在需要发布的 python 代码中引用我的服务器上的 XM
  • 从 XML 文档生成嵌套列表

    在 python 中工作 我的目标是解析我制作的 XML 文档并创建一个嵌套的列表列表 以便稍后访问它们并解析提要 XML 文档类似于以下代码片段
  • 如何在Python中打印带下划线的内容?

    print hello 输出应该是单词 hello 但有下划线 您可以通过使用转义字符来做到这一点 print 033 4mhello 033 0m
  • 我从 clojure 和 python 中得到的 hmac 签名略有不同

    我从 python 实现和 clojure 实现中获得的 HMAC SHA1 签名略有不同 我很困惑什么会导致这种情况 Python实现 import hashlib import hmac print hmac new my key my
  • 使用Python有没有一种方法可以在mongodb中进行插入或更新时监听更改

    我正在构建一个小型系统 它从 mongodb 集合中抛出数据 它已经工作正常 但每次进行更改时我都必须重新启动它 我已经有一个监视器可以检测更改并自动重新启动服务器 但我想对 mongodb 更改执行类似的操作 我当前使用 CentOs 5
  • 使用 PyPy 运行 Python 程序?

    有人告诉我 你可以使用 PyPy 来运行 Python 程序 这要快得多 因为它是使用 JIT 编译器编译的 而不是解释的 以下程序查找数字 600851475143 的最大质因数 import numpy as np nr 6008514
  • 如何在matplotlib_venn中将维恩图保存为PNG图

    使用以下代码我尝试创建维恩图 然后另存为文件 import matplotlib from matplotlib venn import venn2 set1 set A B C D set2 set B C D E plt venn2 s
  • admin.py 用于项目,而不是应用程序

    如何指定项目级别admin py 我前段时间问过这个问题 但由于该问题缺乏活动 我刚刚获得了风滚草奖 gt Project 设置 py admin py 这就是我想要开始工作的 App admin py 我知道该怎么做 例如 admin a
  • 如何在节标题和段落之间添加额外的空格

    我希望标题和段落之间以及段落之间有更多的空间 我不希望这是一个全局设置 但我想在需要的地方和时间使用它 感谢任何建议 您可以在行首使用竖线在输出中生成空行 像这样 Heading Paragraph with text
  • Python 正则表达式 findall

    我正在尝试使用 Python 2 7 2 中的正则表达式从字符串中提取所有出现的标记单词 或者简单地说 我想提取其中的每一段文本 p p 标签 这是我的尝试 regex ur u005B1P u005D u005B u002FP u005D
  • 在python中求Legendre多项式的根

    我正在编写一个程序 通过勒让德 高斯求积求解积分 n 阶求积算法需要在某一时刻找到 n 阶勒让德多项式 Pn x 的根 并将它们分配给数组 Absc 表示 横坐标 Pn 是一个 n 阶多项式 在区间 1 1 上有 n 个独立的实根 我希望能
  • python - lxml:强制执行属性的特定顺序

    我有一个 XML 编写脚本 可以为特定的第 3 方工具输出 XML 我使用原始 XML 作为模板来确保构建所有正确的元素 但最终的 XML 看起来与原始的不同 我以相同的顺序编写属性 但 lxml 按自己的顺序编写它们 我不确定 但我怀疑第
  • Keras 导入错误 Nadam

    我在尝试导入 Keras 模块 Nadam 时遇到导入错误 gt gt gt from keras optimizers import Nadam Traceback most recent call last File

随机推荐

  • Cordova config.xml 文件被重写

    我设置了一个基本的 Cordova 项目 每当我运行 cordova build 时 IOS 中的 config xml 文件都会被重写为默认值 并且我在项目文件夹的 config xml 中添加的任何首选项都会简单地附加到配置中 IOS平
  • SQL Server Management Studio 无法连接到 Sql Server

    我已经使用 MS Web Platform Installer 2 0 安装了 Visual Web Developer 2010 SQL Server 2008 R2 和 SQL Management Studio 2008 但每当我想登
  • Java 泛型(通配符)

    我有几个关于 Java 中通用通配符的问题 有什么区别List 基本上意味着
  • Symfony2:如何在FormType中调用实体的存储库

    我尝试调用我的实体的存储库Category以我的实体的类形 式BonCommande 但是出现了这个错误 注意 未定义的属性 C wamp www Symfony test src Application VehiculeBundle Fo
  • 如何在 Spring 加载应用程序上下文后立即执行作业?

    我想在加载 Spring 上下文后运行一些作业 但我不知道该怎么做 你知道该怎么做吗 另一种可能性是注册应用程序上下文事件的侦听器 基本上与skaffman的解决方案相同 只需实现 org springframework context A
  • 更改textNode值

    有什么方法可以更改 Web 浏览器中 DOM textNode 的值吗 我特别想看看能不能change现有节点 而不是creating一个新的 为了澄清这一点 我需要使用 Javascript 来完成此操作 浏览器中的所有文本都存储在 te
  • 旋转轴标签放置不正确(matplotlib)

    我想绘制带有旋转标签的相关矩阵 但是 标签放错了位置 如下所示 我试着看看Matplotlib Python 条形图 xtick 标签的位置彼此之间有不规则的空间 https stackoverflow com questions 2147
  • 如何阻止 LogCat 输出在 Eclipse 中自动滚动?

    UPDATE 事实证明 这是 SDK 工具 R14 中的一个错误 该问题已在 2013 年 10 月 27 日发布的 R15 中得到修复 更新到最新版本可以解决已接受答案中建议的问题 我使用 Eclipse 调试视图中的 LogCat 窗口
  • int 和 uint 使用的区别以及何时使用

    使用 int 和 uint 有什么区别 到目前为止我看到的所有示例都使用 int 表示整数 使用 uint 有什么好处吗 谢谢 uint means unsignedint 您可以将其用于 0 4G 范围其中正常 有符号 int的范围是 2
  • SignalR 不能与 .Net Core 一起使用

    我正在尝试安装SignalR在我的中使用 NuGet 包管理器C Asp Net 核心项目 但我收到此错误 称 SignalR 与 net core 不兼容 它真的还不支持吗 或者我可以做些什么来让它发挥作用吗 如果有必要提及的话 我正在使
  • tkinter root.mainloop 与 While True 循环

    我正在使用 tkinter 根据我正在读取的电压显示一些标签 但是 它会在一次读取后停止执行 我发现这是由于 root mainloop 造成的 但我无法修复它 我已经包含了我的代码 root mainloop 位于 while True
  • sqlalchemy:创建关系但在数据库中没有外键约束?

    Since sqlalchemy orm relationship 已经暗示了这种关系 我不想在数据库中创建约束 我应该怎么办 目前 我在 alembic 迁移后手动删除这些约束 而不是定义 模式 级别ForeignKey http doc
  • Xcode 7 库搜索路径警告

    这是它显示的警告 找不到选项 F Applications Xcode beta app Contents Developer Platforms iPhoneOS platform Developer SDKs iPhoneOS9 0 s
  • 选择时更改单选按钮的边框颜色

    当我选择它时 我想要一个绿色的单选按钮 周围有绿色边框 这就是我所拥有的 input type radio webkit appearance none width 10px height 10px border radius 50 out
  • 将 10 个数据集(每个数据集有 80 个表)从 bigquery 导出到 Google 存储的有效方法?

    我在 BigQuery 中有 10 个数据集 每个数据集有 80 个表 我知道我可以使用控制台或 Web UI 将每个数据集中的每个表逐一导出到 google 存储 这是出于备份目的 然而 这需要一段时间 我想知道是否有更方便的方法来处理这
  • Chrome 中文本字段光标问题

    我在表单部分使用以下 css CSS username input background color FFFFFF border 2px solid DDDDDD border radius 5px 5px 5px 5px color 9E
  • Java websocket 客户端不适用于 GDAX 沙箱环境

    我正在使用 spring WebSocketWebSocketClient连接 GDAX 服务器 它在实时环境中运行良好 但相同的代码不适用于沙箱环境 这是我连接到服务器的代码 public class Test public static
  • 如何选择给定索引和长度的 RichTextBox 文本

    如果只给你一个要选择的特定文本的索引和长度 或 EndIndex 你如何在 RichTextBox 的 WPF 版本中执行此操作 这在 Textbox 中非常可行 因为您可以调用 Textbox Select startIndex Leng
  • 非不相交集并集的最佳算法是什么?

    假设有两个 非不相交 点集 笛卡尔空间 执行这两个集的并集的最佳情况复杂度算法是什么 由于点坐标是任意的 并且它们之间没有特殊关系 因此我不认为这个问题是一个几何特定问题 这是有效地将 S1 和 S2 合并成新集合 S 的通用问题 我知道有
  • 重新索引不完整的多级数据帧中的第二级以使其完整,在缺失的行上插入 NAN

    我需要重新索引 pandas 数据框的第二级 以便第二级成为一个 完整 列表0 N 1 对于每个一级索引 我尝试使用艾伦 海登的方法 https stackoverflow com questions 20104874 reindex su