【问题标题】:Python: Create New Column Equal to the Sum of all Columns Starting from Column Number 9Python:创建新列等于从第 9 列开始的所有列的总和
【发布时间】:2017-11-28 19:42:14
【问题描述】:

我想在我的数据框中创建一个名为“test”的新列,该列等于从第 9 列开始到数据框末尾的所有列的总和。这些列都是浮点数据类型。

下面是我尝试过的代码,但它不起作用 --> 将“test”列中的所有 NaN 值返回给我:

df_UBSrepscomp['test'] = df_UBSrepscomp.iloc[:, 9:].sum()

【问题讨论】:

    标签: python indexing sum field slice


    【解决方案1】:

    如果我理解您的问题,您想要从第 9 列开始的逐行总和。我相信您想要 .sum(axis=1)。为了便于阅读,请参阅下面的示例,使用第 2 列而不是第 9 列。

    df = DataFrame(npr.rand(10, 5))
    df.iloc[0:3, 0:4] = np.nan # throw in some na values
    df.loc[:, 'test'] = df.iloc[:, 2:].sum(axis=1); print(df)
             0        1        2        3        4     test
    0      NaN      NaN      NaN      NaN  0.73046  0.73046
    1      NaN      NaN      NaN      NaN  0.79060  0.79060
    2      NaN      NaN      NaN      NaN  0.53859  0.53859
    3  0.97469  0.60224  0.90022  0.45015  0.52246  1.87283
    4  0.84111  0.52958  0.71513  0.17180  0.34494  1.23187
    5  0.21991  0.10479  0.60755  0.79287  0.11051  1.51094
    6  0.64966  0.53332  0.76289  0.38522  0.92313  2.07124
    7  0.40139  0.41158  0.30072  0.09303  0.37026  0.76401
    8  0.59258  0.06255  0.43663  0.52148  0.62933  1.58744
    9  0.12762  0.01651  0.09622  0.30517  0.78018  1.18156
    

    【讨论】:

    • 完美运行!谢谢 ;为什么需要添加(axis = 1)?这是什么意思?
    • Thisaxis=0axis=1 的一个很好的演练。
    猜你喜欢
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    相关资源
    最近更新 更多