首页 > 解决方案 > 对包含字符串的熊猫数据框中的列进行求和

问题描述

我正在尝试做一些相对简单的事情来对包含某个字符串的熊猫数据框中的所有列进行求和。然后从总和中将其作为数据框中的新列。这些列都是数字浮点值...

我可以获得包含我想要的字符串的列列表

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

但是当我尝试使用以下方法对它们求和时: cdf['PadStm'] = cdf[StmCol].sum()

我得到一个充满“nan”值的新列。

标签: pythonpandasdataframesum

解决方案


您需要将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

推荐阅读