python - 根据数据框中的位置选择/操作单元格

标签 python pandas

我有一个数据框如下

A   B   C   D   E   F   G   H   I
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9

我想将最后 2 行中第 2 列之后的每第 3 列乘以 5,以获得如下输出。

如何完成这个?

A   B   C   D   E   F   G   H   I
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   2   3   4   5   6   7   8   9
1   10  3   4   25  6   7   40  9
1   10  3   4   25  6   7   40  9

我可以使用 df.iloc[-2:,1::3] 选择我需要的单元格 这导致 df 如下,但我无法继续进行。

B   E   H
2   5   8
2   5   8

我知道我可以使用 loc 选择相同的单元格而不是iloc ,那么计算就很简单了,但我无法弄清楚。 列名和单元格值不能被使用,因为它们发生了变化(这里的 df 只是一个虚拟数据)

最佳答案

您可以分配回相同的行/列选择,例如:

df.iloc[-2:,1::3] = df.iloc[-2:,1::3].mul(5)
#alternative
#df.iloc[-2:,1::3] = df.iloc[-2:,1::3] * 5
print (df)
   A   B  C  D   E  F  G   H  I
0  1   2  3  4   5  6  7   8  9
1  1   2  3  4   5  6  7   8  9
2  1   2  3  4   5  6  7   8  9
3  1   2  3  4   5  6  7   8  9
4  1   2  3  4   5  6  7   8  9
5  1  10  3  4  25  6  7  40  9
6  1  10  3  4  25  6  7  40  9

关于python - 根据数据框中的位置选择/操作单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66273295/

相关文章:

python - 以 Float 形式表示的年份到 Datetime64

python - 根据其他列更新列值

python - 使用 psycopg2 执行多组参数的查询

python - 如何避免在 Bottle Python Web 框架中转义 html 字符?

python - Python中子类的函数返回错误

python - 如何在 pandas 系列字符串上应用切片

python - 合并两个 pandas 数据框并根据条件创建一个新的二进制列

python - 检索和使用 tkinter 组合框选择

python - 合并 Pandas 数据帧行

python - 从具有 NA 值的 Date 获取 Year & Month 作为字符串