首页 > 后端开发 > Python教程 > 如何有效地设置 Pandas DataFrame 中的特定单元格值?

如何有效地设置 Pandas DataFrame 中的特定单元格值?

Linda Hamilton
发布: 2024-12-01 17:28:11
原创
439 人浏览过

How to Efficiently Set a Specific Cell Value in a Pandas DataFrame?

为 Pandas DataFrame 中的特定单元格设置值

您已创建一个 DataFrame 并想要更改特定单元格的值。但是,使用 df.xs('C')['x'] = 10 不会按预期更新 DataFrame。为什么?

问题源于 df.xs() 的运行方式。默认情况下,它返回一个带有数据副本的新 DataFrame。因此, df.xs('C')['x'] = 10 仅修改新的 DataFrame,而不是原始 DataFrame。

相反,您可以使用 df['x']['C'] = 10. 此方法返回原始 DataFrame 的视图,任何修改都将应用于 df。

但是,推荐的方法是使用 .at 或.iat:

  • df.at['C', 'x'] = 10:直接设置'C'行和'x'列的值。
  • df. iat[2, 0] = 10:使用索引位置访问单元格(2 表示行,0 表示列)。

为什么 df.xs('C')['x'] = 10 被弃用?

df.set_value('C' , 'x', 10) 是首选方法,因为它的速度要快得多。但是,df.set_value() 预计将被弃用。

性能比较

基准显示 df.set_value() 在速度方面优于其他选项:

In [18]: %timeit df.set_value('C', 'x', 10)
100000 loops, best of 3: 2.9 µs per loop

In [20]: %timeit df['x']['C'] = 10
100000 loops, best of 3: 6.31 µs per loop

In [81]: %timeit df.at['C', 'x'] = 10
100000 loops, best of 3: 9.2 µs per loop
登录后复制

以上是如何有效地设置 Pandas DataFrame 中的特定单元格值?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板