将具有常量值的列添加到pandas数据框中[重复]

2023-11-30

给定一个数据框:

np.random.seed(0)
df = pd.DataFrame(np.random.randn(3, 3), columns=list('ABC'), index=[1, 2, 3])
df

          A         B         C
1  1.764052  0.400157  0.978738
2  2.240893  1.867558 -0.977278
3  0.950088 -0.151357 -0.103219

添加包含常量值(例如 0)的新列的最简单方法是什么?

          A         B         C  new
1  1.764052  0.400157  0.978738    0
2  2.240893  1.867558 -0.977278    0
3  0.950088 -0.151357 -0.103219    0

这是我的解决方案,但我不知道为什么这会将 NaN 放入“新”列?

df['new'] = pd.Series([0 for x in range(len(df.index))])

          A         B         C  new
1  1.764052  0.400157  0.978738  0.0
2  2.240893  1.867558 -0.977278  0.0
3  0.950088 -0.151357 -0.103219  NaN

超级简单的就地分配:df['new'] = 0

对于就地修改,执行直接赋值。此分配由 pandas 为每一行广播。

df = pd.DataFrame('x', index=range(4), columns=list('ABC'))
df

   A  B  C
0  x  x  x
1  x  x  x
2  x  x  x
3  x  x  x

df['new'] = 'y'
# Same as,
# df.loc[:, 'new'] = 'y'
df

   A  B  C new
0  x  x  x   y
1  x  x  x   y
2  x  x  x   y
3  x  x  x   y

对象列的注释

如果您想添加一列空列表,这是我的建议:

  • 考虑不这样做。object就性能而言,列是个坏消息。重新思考数据的结构。
  • 考虑将数据存储在稀疏数据结构中。更多信息:稀疏数据结构
  • 如果必须存储一列列表,请确保不要多次复制相同的引用。

    # Wrong
    df['new'] = [[]] * len(df)
    # Right
    df['new'] = [[] for _ in range(len(df))]
    

生成副本:df.assign(new=0)

如果您需要副本,请使用DataFrame.assign:

df.assign(new='y')

   A  B  C new
0  x  x  x   y
1  x  x  x   y
2  x  x  x   y
3  x  x  x   y

而且,如果您需要为多个此类列分配相同的值,这很简单,

c = ['new1', 'new2', ...]
df.assign(**dict.fromkeys(c, 'y'))

   A  B  C new1 new2
0  x  x  x    y    y
1  x  x  x    y    y
2  x  x  x    y    y
3  x  x  x    y    y

多列分配

最后,如果您需要为多个列分配不同的值,您可以使用assign带着字典。

c = {'new1': 'w', 'new2': 'y', 'new3': 'z'}
df.assign(**c)

   A  B  C new1 new2 new3
0  x  x  x    w    y    z
1  x  x  x    w    y    z
2  x  x  x    w    y    z
3  x  x  x    w    y    z
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将具有常量值的列添加到pandas数据框中[重复] 的相关文章

随机推荐

  • 在组合框/列表框中启用鼠标滚轮滚动

    我正在使用 VBA 在 Excel 2007 中构建用户窗体 并且想知道如何启用组合框和列表框的鼠标滚轮滚动 我是否需要更新版本的 Office 才能获得此功能 还是可以通过编码实现此功能 如果使用 32 位 Windows 则解决方案为彼
  • 比较大量 PDF 文件的工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我需要比较大量 PDF 文
  • stl 中的错误,系列少于两个周期(错误?)

    I have 两年的月度数据 but stl 似乎至少需要两年零一个月 这是两个简单的例子 示例 1 返回 stl x 周期性 中的错误 系列不是周期性的或周期少于两个 dat 24 lt cumsum rnorm 24 x 24 lt t
  • 在 R 上的 igraph 中查找大型数据集中的根顶点

    假设您有一个根据边列表创建的图 并且有数百个顶点 我想要做的是确定所有后续顶点都与之相关的初始顶点集 例如母亲或家谱 这是一个代表 冰岛 的数据集 即从冰川上脱落并漂浮在海上的大型平板状冰片 初始裂缝代表根节点 随后的顶点是对这些较小碎片
  • 使用参数调用宏:Python win32com API

    我想做的是从我的 python 代码中调用宏 这是来源示例 xl win32 gencache EnsureDispatch Excel Application xl Visible 1 xl Workbooks Open C Progra
  • gsub 无法删除 R 中的空括号

    我在 R 中有以下字符串 A lt A 23 56 hh 我想得到以下输出 A 23 56 hh 我尝试了以下代码 B lt gsub pattern replacement x A 这没有产生预期的结果 我怎样才能完成同样的任务 Try
  • 在 Javascript 中获取对象任意级别的元素

    鉴于以下情况 var a JSON parse fst data1 snd ind2 data2 var index fst var res a index res data1 var index2 var res2 a index2 re
  • Microsoft 2010 Visual C,安装FLTK

    MSV2010C 的 FLTK 问题 我正在关注 编程 使用 C 的原理和实践 尝试让 FLTK 正确运行时遇到了麻烦 我为自己工作过一次 然后就再也没有了 我已详细说明了下面所采取的步骤 如果有人能注意到任何奇怪的地方 我将不胜感激 我的
  • 成功使用后几​​天后“未找到”RVM

    我几天前安装了RVM 运行得很好 几天后 现在 我猜是在重新启动几次之后 shell 说它就像没有安装一样rvm not found虽然我可以在我的眼中看到这一切 rvm文件夹 还有一个scripts文件夹到那个 我尝试重新运行安装脚本 但
  • 如何为Rails 3站点中的每个页面设置不同的背景图像?

    我正在尝试弄清楚如何为 Rails 3 站点的每个页面设置不同的背景图像 我怎样才能做到这一点 而不必重复每个页面的 css 文件中的内容 application html erb div class container div class
  • 如何阻止 Eclipse 编辑器在 RCP 中关闭

    我正在开发基于 Eclipse 的 RCP 我们需要防止用户关闭打开的编辑器之一 期望的行为是 用户单击编辑器窗口中的 X 或 CTRL W 弹出一个对话框 显示 如果您关闭此编辑器 您的活动将停止 您想这样做吗 如果他们点击 是 它就会关
  • 如何在 UWP 中写入只读 sqlite 文件

    所以我是 UWP 新手 在完成连接到 sqlite 后tutorial 我对代码进行了一些修改以尝试新事物 我没有在本地文件夹中创建并保存 sqlite 文件 而是将文件目录更改为安装位置 创建了一个文件夹 data 并在其中添加 sqli
  • 我想引用另一个 python 脚本中的变量

    一个变量AA is in aaa py 我想在我的其他 python 文件中使用这个变量bbb py 我如何访问这个变量 您正在寻找modules In aaa py AA Foo In bbb py import aaa print aa
  • CPU Arch 的交叉编译或原生编译

    编写依赖于 CPU 架构的软件时 例如在 x86 上运行的 C 代码或在 ARM CPU 上运行的 C 代码 通常有两种方法可以编译此代码 要么交叉编译到 ARM CPU 架构 例如 如果您在 x86 系统上进行开发 要么将代码复制到本机架
  • H2161 警告:重复资源:类型 10 (RCDATA)

    我尝试将资源文件包含在我的包中 当我构建包时 我读到了这个警告 dcc32 Conseil H2161 Warning Duplicate resource Type 10 RCDATA ID PLUSUTILISEVOIR File Pr
  • Android 删除参数以匹配“intent()”

    我正在尝试开始第二个活动 但代码出现错误 import android os Bundle import android content Intent import android app Activity import android w
  • UIAlertView 第一个被弃用的 iOS 9

    我尝试了多种方法来使用 UIAlertController 而不是 UIAlertView 我尝试了多种方法 但无法使警报操作发挥作用 这是我的代码 在 IOS 8 和 IOS 9 中运行良好 但显示为已弃用的标志 我尝试了下面的优雅建议
  • 推荐在 java 中使用 WMI 的库/方法? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 嘿伙计 我有一个相当大的商业项目 因此付费许可始终是一种选择 该项目正在迁移到 Windows 空间 并且我计划使用 WMI 进行大量轮询 这是一个
  • 如何从现有代码创建 WordPress 短代码?

    我有这段代码来显示所有帖子的类别和第一篇帖子的缩略图 ul li li ul
  • 将具有常量值的列添加到pandas数据框中[重复]

    这个问题在这里已经有答案了 给定一个数据框 np random seed 0 df pd DataFrame np random randn 3 3 columns list ABC index 1 2 3 df A B C 1 1 764