从 Pandas Column 中解压字典

2024-01-20

我有一个数据框,其中一列作为字典。我想将其解压为多列(即代码、金额是下面原始列格式中的单独列)。以下代码用于使用 pandas v0.22,现在 (0.23) 给出索引错误:

pd.DataFrame.from_records(df.col_name.fillna(pd.Series([{'code':'not applicable'}], index=df.index)).values.tolist())

ValueError: Length of passed values is 1, index implies x

我在 google/stack Overflow 上搜索了几个小时,之前提出的其他解决方案都不再起作用了。

原始列格式:

     dict_codes
0   {'code': 'xx', 'amount': '10.00',...
1   {'code': 'yy', 'amount': '20.00'...
2   {'code': 'bb', 'amount': '30.00'...
3   {'code': 'aa', 'amount': '40.00'...
10  {'code': 'zz', 'amount': '50.00'...
11                            NaN
12                            NaN
13                            NaN

有没有人有什么建议?

Thanks


Setup

df = pd.DataFrame(dict(
    codes=[
        {'amount': 12, 'code': 'a'},
        {'amount': 19, 'code': 'x'},
        {'amount': 37, 'code': 'm'},
        np.nan,
        np.nan,
        np.nan,
    ]
))

df

                         codes
0  {'amount': 12, 'code': 'a'}
1  {'amount': 19, 'code': 'x'}
2  {'amount': 37, 'code': 'm'}
3                          NaN
4                          NaN
5                          NaN

apply with pd.Series

确保dropna first

df.codes.dropna().apply(pd.Series)

   amount code
0      12    a
1      19    x
2      37    m

df.drop('codes', 1).assign(**df.codes.dropna().apply(pd.Series))

   amount code
0    12.0    a
1    19.0    x
2    37.0    m
3     NaN  NaN
4     NaN  NaN
5     NaN  NaN

tolist and from_records

相同的想法,但跳过apply

pd.DataFrame.from_records(df.codes.dropna().tolist())

   amount code
0      12    a
1      19    x
2      37    m

df.drop('codes', 1).assign(**pd.DataFrame.from_records(df.codes.dropna().tolist()))

   amount code
0    12.0    a
1    19.0    x
2    37.0    m
3     NaN  NaN
4     NaN  NaN
5     NaN  NaN
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Pandas Column 中解压字典 的相关文章

随机推荐

  • 覆盖该类的字体大小.MuiTypography-body1

    我试图覆盖这个类的字体大小 MuiTypography body1 所以我研究并找到了这个链接https material ui com api typography https material ui com api typography
  • 外发光圆角TextBox

    我试图了解 UWP 的 XAML 的一些基本限制以及如何改变 XAML 控件的样式 我决定看看是否可以创建一个具有圆角和外发光边框效果的文本框控件 我没有尝试过任何东西 因为我在搜索解决方案时最终遇到的所有地方似乎只适用于 WPF 平台 如
  • 多个App.Config文件

    我想分离我的 app config 文件 例如 我想将 ServiceModel 部分移动到同一项目中的另一个配置文件 我怎样才能做到这一点 Thanks 您应该能够有一个空元素configSource属性设置为第二个文件 相对于第一个文件
  • 在 JavaScript 中拦截粘贴数据

    我从以下代码中得到了拦截Javascript中的粘贴事件 https stackoverflow com questions 6035071 intercept paste event in javascript 我需要在粘贴之前获取它 否
  • 在 Windows 上,是否可以以不同用户身份运行单个 goroutine?

    如何将 goroutine 的运行委托给 Windows 上的另一个非管理员帐户 我看到你可以这样做Linux https groups google com forum topic golang nuts IpfEDBVSE34 usin
  • 使用 moment js 将分钟转换为天、小时和分钟

    我正在使用 moment js 将分钟转换为天 小时和分钟 moment utc startOf year add minutes timeInMinute format D Days and HH Hours and mm timeInM
  • 如何使用Qt WebEngine和QWebChannel?

    我正在使用新的 WebEngine 来玩耍和学习 我一直在尝试使用 Qt WebKit 找到一些类似的方法 addToJavaScriptWindowObject 我发现使用 Qt WebEngine 我必须使用QWebChannel将函数
  • Android 使用 CamcorderProfile 捕捉慢动作视频

    我正在尝试在 Nexus 5x 上捕捉慢动作视频 这就是我配置媒体记录器的方式 CamcorderProfile profile CamcorderProfile get CamcorderProfile QUALITY HIGH SPEE
  • 在 Fortran 中使用矩阵作为函数中的参数和子例程中的输出

    我试图创建一个程序 要求我使用矩阵作为函数和子例程的输入 并且还要求我将矩阵作为 Fortran 中的子例程输出 但是 我在这样做时遇到了多个错误 我无法理解这些错误的根源以及如何修复它们 我对逻辑很有信心 但我在处理矩阵时似乎犯了错误 求
  • NoSuchMethodError:没有静态方法decodeBase64

    我正在开发马拉地语聊天机器人 在此我使用 Google Translator API 和语音转文本 直到昨天应用程序工作正常 但重新启动 Android Studio 后 出现此错误 我的应用程序正在 AVD 中运行 并且只有一台设备已获得
  • ANTLR4:词法分析器规则:任何字符串,只要不包含这两个并排字符?

    有没有办法在 ANTLR4 中表达这一点 任何字符串 只要它不立即包含星号 后面跟着一个正斜杠 这不起作用 因为 ANTRL 抛出此错误 multi character literals are not allowed in lexer s
  • Mercurial:自动添加子存储库的 Windows 脚本

    瑞安 威尔考克斯 https stackoverflow com users 224334 ryanwilcox已发布脚本于here https stackoverflow com questions 2408772 how do i ad
  • 获取一致的密钥错误:\n [重复]

    这个问题在这里已经有答案了 当尝试运行包含以下代码的脚本来生成文本块时 from textwrap import dedent text dedent yada yada 1 2 3 4 0 Null 1 Hello world 1 2 f
  • WebView - Youtube 视频在后台旋转播放并最小化

    我有一个 WebView 问题 基本上我正在加载一个在某些地方嵌入了视频的论坛 如果您播放视频然后旋转设备 视频会在后台继续播放 您可以访问它来停止它 当您最小化应用程序时也会发生这种情况 有办法阻止这种情况吗 这是我正在使用的 WebVi
  • 将html表中的所有数据获取到数组中

    到目前为止 我可以将所有通用文本数据放入数组中 但我正在努力处理表格单元格内的选择框 到目前为止 在我的 jQuery 中我有这个 image button click function var myTableArray table img
  • 如何使用discord.py消除DM中的反应

    我想删除我的机器人发送的私人消息中的反应 当我尝试这个时 embed discord Embed title Choose the word difficulty description 1 Easy n 2 Medium n 3 Hard
  • 如何防止浮点数不精确影响numpy.arange?

    Because numpy arange https docs scipy org doc numpy reference generated numpy arange html uses ceil stop start step 判断物品
  • VB6:名称与现有模块、项目或对象库冲突

    打开 VB6 项目时 我收到如下错误 加载期间出错 参考xyz LOG 我打开日志文件并看到以下错误 第 42 行 控件 XYZ 的类 Threed SSPanel 不是加载的控件 班级 在这种情况下 我可以看到问题是由于 Sheridan
  • IEEE 浮点标准中的 (+0)+(-0) 是什么?

    我对任何浮点数的算术运算都是由 IEEE 浮点标准明确定义的吗 如果是的话 只是出于好奇 什么是 0 0 有没有办法在实践中用 C 或其他常用的编程语言检查这些事情 有符号零的算术 IEEE 754 规则规定 0 0 0 0取决于舍入模式
  • 从 Pandas Column 中解压字典

    我有一个数据框 其中一列作为字典 我想将其解压为多列 即代码 金额是下面原始列格式中的单独列 以下代码用于使用 pandas v0 22 现在 0 23 给出索引错误 pd DataFrame from records df col nam