gpt4 book ai didi

python - 如何划分 Pandas 数据框中除特定行以外的所有行?

转载 作者:太空狗 更新时间:2023-10-30 00:53:16 25 4
gpt4 key购买 nike

目前,我正在使用一个 pandas.DataFrame,我需要将整个数据帧除以某一行以外的特定值。将整个数据帧除以一个值很容易,但是我想保持其中一行完全相同。例如,如果我有如下数据框:

  A      B      C      D
10000 10000 10000 10000
10000 10000 10000 10000
10000 10000 10000 10000
10000 10000 10000 10000
1 1 1 1
10000 10000 10000 10000
10000 10000 10000 10000

除了第 5 行,我想将所有行除以 1000 的值,我希望所有的值都保持为 1。因此,新的数据框将如下所示:

 A   B   C   D
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
1 1 1 1
10 10 10 10
10 10 10 10

有没有简单的方法可以做到这一点?我觉得我缺少一些非常基本的东西。我尝试过使用 loc、iloc、mul 和 div,但无法让它们同时工作。

最佳答案

如果您保存感兴趣的行,然后将整个数据帧除以所需的值。之后您可以恢复感兴趣的行。

代码:

def df_divide_by_excect_row(in_df, divisor, row_to_ignore):
row_to_save = in_df.iloc[row_to_ignore]
new_df = in_df / divisor
new_df.iloc[row_to_ignore] = row_to_save
return new_df

测试代码:

import pandas as pd

df = pd.read_fwf(StringIO(u"""
A B C D
10000 10000 10000 10000
10000 10000 10000 10000
10000 10000 10000 10000
10000 10000 10000 10000
1 1 1 1
10000 10000 10000 10000
10000 10000 10000 10000"""), header=1)

print(df)
print(df_divide_by_excect_row(df, 1000, 4))

结果:

       A      B      C      D
0 10000 10000 10000 10000
1 10000 10000 10000 10000
2 10000 10000 10000 10000
3 10000 10000 10000 10000
4 1 1 1 1
5 10000 10000 10000 10000
6 10000 10000 10000 10000

A B C D
0 10.0 10.0 10.0 10.0
1 10.0 10.0 10.0 10.0
2 10.0 10.0 10.0 10.0
3 10.0 10.0 10.0 10.0
4 1.0 1.0 1.0 1.0
5 10.0 10.0 10.0 10.0
6 10.0 10.0 10.0 10.0

关于python - 如何划分 Pandas 数据框中除特定行以外的所有行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48635148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com