gpt4 book ai didi

pandas - 在 DataFrame 中逐行求和给定列

转载 作者:行者123 更新时间:2023-12-04 02:37:30 25 4
gpt4 key购买 nike

我有一个 DataFrame 定义为:

df = pd.DataFrame({
'id':[1,2,3],
'activity':['A1', 'A2', 'A2'],
'prep_hours':[None,None,1],
'delivery_hours':[10,10,15]})

我想创建一个列 total_hours,它是与模式 *_hours 匹配的所有列的总和

目前,我只是将我想要的列添加到一个新列中:

df.fillna(0, inplace=True)
df['total_hours'] = df['prep_hours'] + df['delivery_hours']

但它不容易扩展。举个例子,我只有 2 个名为 *_hours 的列,但在真正的 DataFrame 中,它包含 30 多个应该添加的列。

有没有更聪明的方法来做到这一点?

最佳答案

使用DataFrame.filter使用 like 参数和 sum,不需要将缺失值转换为 0:

df["total_hours"] = df.filter(like='_hours').sum(axis=1)
print (df)
id activity prep_hours delivery_hours total_hours
0 1 A1 NaN 10 10.0
1 2 A2 NaN 10 10.0
2 3 A2 1.0 15 16.0

关于pandas - 在 DataFrame 中逐行求和给定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60988731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com