当前位置: 首页 > 知识库问答 >
问题:

使用索引设置pandas数据帧中特定单元格的值

卢黎明
2023-03-14
df = DataFrame(index=['A','B','C'], columns=['x','y'])

拿到这个了

    x    y
A  NaN  NaN
B  NaN  NaN
C  NaN  NaN


然后我要为特定单元格赋值,例如为行“C”和列“X”赋值。我已经料到会有这样的结果:

    x    y
A  NaN  NaN
B  NaN  NaN
C  10  NaN

使用此代码:

df.xs('C')['x'] = 10

共有1个答案

汪翰墨
2023-03-14

Ruktech的答案df.set_value('c','x',10)比我下面建议的选项快得多。然而,它已被否决。

接下来,推荐的方法是.iat/.at

为什么df.xs('c')['x']=10不起作用:

df.xs('C')['x']=10

仅修改此新数据帧。

df['x']返回df数据帧的视图,因此

df['x']['C'] = 10

修改df本身。

df.at['C', 'x'] = 10
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
 类似资料:
  • 问题内容: 我创建了一个 并得到这个 然后,我想为特定的单元格赋值,例如行“ C”和列“ x”。我期望得到这样的结果: 使用此代码: 但内容df没有改变。再次仅在中。 有什么建议? 问题答案: RukTech的答案,远比我在下面建议的选项要快得多。但是,已将其淘汰。 展望未来,推荐的方法是。 为什么不起作用: 默认情况下,返回带有数据副本的新数据框,因此 仅修改此新数据框。 返回数据框的视图,因此

  • 我有一个类似于这个和这个的问题。区别在于我必须按位置选择行,因为我不知道索引。 我想做一些类似于,但iloc不允许这种访问。如果我执行,则会出现关于链接索引的警告。

  • 问题内容: 我也有类似的问题,这个。区别在于我必须按位置选择行,因为我不知道索引。 我想做类似的事情,但是iloc不允许这种访问。如果执行此操作,则会出现有关链接索引的警告。 问题答案: 对于混合位置和索引,请使用。但是您需要确保索引不是整数,否则会引起混乱。 更新: 或者,尝试 例:

  • 我是Python的新手 我想在pandas数据帧中找到某个值的索引(比如说),因为这是列的起始位置。(列上方的行数未知,数据不相关,左侧的“列”为空。) 据我所知,isin方法只返回值是否存在的布尔值,而不是其索引。 如何找到该值的索引?

  • 这是一个与这个问题非常相似的问题,但有一个关键的区别:我选择的数据我想改变的不是它的索引,而是一些标准。 如果我应用的条件返回一行,我希望能够以一种简单的方式设置该行中某一列的值,但是我的第一次尝试不起作用: 因此,与其将2009年周日的香蕉销量设定为100,还不如什么都不发生!做这件事最好的方法是什么?理想情况下,解决方案应该使用行号,因为您通常事先不知道!

  • 如何在此数据帧中选择特定单元格?,此数据帧中的索引是FISH列 我的预期输出是:例如