'Series' 对象是可变的,因此不能对它们进行散列以尝试对列求和并且数据类型是浮点数

'Series' objects are mutable, thus they cannot be hashed trying to sum columns and datatype is float

我正在尝试使用以下方法对几千列中从第三列到最后一列的所有值求和:

day3prep['D3counts'] = day3prep.sum(day3prep.iloc[:, 2:].sum(axis=1))

数据帧格式为:

ID G1  Z1  Z2 ...ZN
0  50  13  12 ...62
1  51  62  23 ...19

dataframe with summed column:
ID G1  Z1  Z2 ...ZN D3counts
0  50  13  12 ...62 sum(Z1:ZN in row 0)
1  51  62  23 ...19 sum(Z1:ZN in row 1)

我已将 NaN 更改为 0。数据类型为浮点型,但出现错误:

'Series' objects are mutable, thus they cannot be hashed

你只需要这部分:

day3prep['D3counts'] = day3prep.iloc[:, 2:].sum(axis=1)

有一些随机数:

import pandas as pd
import random

random.seed(42)
day3prep = pd.DataFrame({'ID': random.sample(range(10), 5), 'G1': random.sample(range(10), 5),
    'Z1': random.sample(range(10), 5), 'Z2': random.sample(range(10), 5), 'Z3': random.sample(range(10), 5)})

day3prep['D3counts'] = day3prep.iloc[:, 2:].sum(axis=1)

输出:

> day3prep


    ID  G1  Z1  Z2  Z3  D3counts
0   1   2   0   8   8        16
1   0   1   9   0   6        15
2   4   8   1   3   3         7
3   9   4   7   5   7        19
4   6   3   6   6   4        16