如何对 Pandas 中特定列的 DataFrame 行进行求和
对于给定的 DataFrame,可能需要计算跨值的总和特定行。在尝试通过 df[['a', 'b', 'd']].map(sum) 实现此目的时,您可能会遇到问题。
此任务的适当操作涉及使用 sum()轴=1。此操作计算每行的总和,忽略非数字列。为了确保准确性,建议指定 numeric_only=True,尤其是在 Pandas 2.0 及以上版本中。
例如,考虑包含列 'a'、'b'、'c' 和 'd' 的 DataFrame ,其中 'c' 是非数字列:
df = pd.DataFrame({'a': [1, 2, 3], 'b': [2, 3, 4], 'c': ['dd', 'ee', 'ff'], 'd': [5, 9, 1]})
计算列 'a', 'b' 的总和,和 'd',我们可以使用:
df['e'] = df.sum(axis=1, numeric_only=True)
这将添加一个列 'e',其中包含所需列的总和。
如果您希望对特定列进行求和,同时排除其他列,则可以指定列列表并使用 col_list.remove(column_name) 删除任何不需要的列。
col_list = list(df) col_list.remove('d') df['e'] = df[col_list].sum(axis=1)
这将使用指定列的总和创建一个新列 'e'。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3