繁体   English   中英

pandas,更改 dataframe 中的特定单元格

[英]pandas,change particular cell in dataframe

如何更改 dataframe 中的特定单元格?

问题:

a new row is adding,instead of modifying the old data

当我尝试改变它时,

d1.at[0, 'high'] = 10

假设您的 DataFrame ( d1 ) 包含以下内容:

   high  low
1     1    2
2     3    4
3     5    6

请注意,索引包含0

然后,当您运行d1.at[0, 'high'] = 10时, Pandas的运行方式如下:

  • 尝试查找索引为0的行。
  • 如果有问题的 DataFrame 不包含这样的行,则添加具有此类索引的行,并且所有列最初都设置为NaN
  • 在(刚刚添加的)行中,将列中的值设置为10
  • 其他列(在这种情况下只有low )尚未设置,因此它们仍然具有NaN
  • 副作用是列都是int类型。 但即使将它们的任何元素初始临时设置为NaN也会强制这些列浮动

所以在上述指令d1之后包含:

   high  low
1   1.0  2.0
2   3.0  4.0
3   5.0  6.0
0  10.0  NaN

然后让我们测试另一个场景:

d1确实包含索引为0的行:

   high  low
1     1    2
2     3    4
3     5    6
0     7    8

现在,如果您运行d1.at[0, 'high'] = 10已找到“想要的”行(未发生插入)并且该行中的列已设置为10 (这些行中的其他列保持其初始值)。

之后d1包含:

   high  low
1     1    2
2     3    4
3     5    6
0    10    8

所以:

  • Pandas更新了有问题的列,
  • 两列都保持其初始类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM