我有一个数据框如下
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/