Суммируйте столбцы в кадре данных pandas, которые содержат строку - PullRequest
1 голос
/ 23 мая 2019

Я пытаюсь сделать что-то относительно простое, суммируя все столбцы в кадре данных панд, которые содержат определенную строку. Затем создайте новый столбец в кадре данных из суммы. Все эти столбцы являются числовыми значениями с плавающей точкой ...

Я могу получить список столбцов, которые содержат строку, которую я хочу

StmCol = [col for col in cdf.columns if 'Stm_Rate' in col]

Но когда я пытаюсь суммировать их, используя: cdf['PadStm'] = cdf[StmCol].sum()

Я получаю новый столбец, полный значений "nan".

1 Ответ

1 голос
/ 23 мая 2019

Вам необходимо передать axis = 1 - .sum, по умолчанию (axis = 0) суммы по каждому столбцу:

In [11]: df = pd.DataFrame([[1, 2], [3, 4]], columns=["A", "B"])

In [12]: df
Out[12]:
   A  B
0  1  2
1  3  4

In [13]: df[["A"]].sum()  # Here I'm passing the list of columns ["A"]
Out[13]:
A    4
dtype: int64

In [14]: df[["A"]].sum(axis=1)
Out[14]:
0    1
1    3
dtype: int64

Только последний соответствует индексу df:

In [15]: df["C"] = df[["A"]].sum()

In [16]: df["D"] = df[["A"]].sum(axis=1)

In [17]: df
Out[17]:
   A  B   C  D
0  1  2 NaN  1
1  3  4 NaN  3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...