首页 > 解决方案 > 有一种方法可以更改 DataFrame 中特定单元格的值,从而在具有相同列名和索引的另一个数组中保持差异

问题描述

在此处输入图像描述

有一个包含更多行和列的数据框,我很想用小于或等于平均值​​的值替换大于行平均值的值。通过更改此值,我想通过保持相同的列名和行索引来保持与另一个数据框中的旧值的差异。

作为第一行的示例,我想保留 1000 和 2023 的值,将 1000 留在单元格中,剩下的 2000 将它们放在数据框中,就像这个结果一样。

在此处输入图像描述

标签: pythonpandascell

解决方案


(不确定你想要什么,因为你的帖子提到了“意思”,但你的例子使用了“min”......)

使用 numpy(如果需要,我会让你适应 pandas):

# define sample array
a = np.arange(24)
np.random.shuffle(a)
a = a.reshape((4,6))
a

# array([[13, 12, 11,  9, 20,  2],
#        [18,  8, 22,  7, 10,  5],
#        [ 6,  1, 23, 16,  3, 19],
#        [15, 14,  0,  4, 17, 21]])

# subtract minimum value from each row
a-a.min(axis=1, keepdims=True)

# array([[11, 10,  9,  7, 18,  0],
#        [13,  3, 17,  2,  5,  0],
#        [ 5,  0, 22, 15,  2, 18],
#        [15, 14,  0,  4, 17, 21]])

推荐阅读