我的数据框如下:
Preg Glucose BloodPressure SkinThickness Insulin Outcome
0 1.0 85.0 66.0 29.0 0.0 0.0
1 8.0 183.0 64.0 0.0 0.0 0.0
2 1.0 89.0 66.0 23.0 94.0 1.0
3 0.0 137.0 40.0 35.0 168.0 1.0
4 5.0 116.0 74.0 0.0 0.0 1.0
我想以一种pythonic的方式根据各列之一的条件将各列分开求和。我可以通过遍历df列来做到这一点,但是我敢肯定,还有一种我不熟悉的更好的方法。
对于我拥有的数据,如果最后一列的“结果”等于1,我想对每列值求和。最后,我应该得到以下内容:
Preg Glucose BloodPressure SkinThickness Insulin Outcome
0 6.0 342.0 180.0 58.0 262.0 0.0
有什么想法吗?
答案 0 :(得分:2)
以下是获得预期输出的解决方案:
sum_df = df.loc[df.Outcome == 1.0].sum().to_frame().T
sum_df.Outcome = 0.0
输出:
Preg Glucose BloodPressure SkinThickness Insulin Outcome
0 6.0 342.0 180.0 58.0 262.0 0.0
文档:
答案 1 :(得分:1)
使用np.where
df1[np.where(df1['Outcome'] == 1,True,False)].sum().to_frame().T
输出
Preg Glucose BloodPressure SkinThickness Insulin Outcome
0 6.0 342.0 180.0 58.0 262.0 3.0
答案 2 :(得分:0)
这些对您有用吗?
df1.loc[~(df1['Outcome'] == 0)].groupby('Outcome').agg('sum').reset_index()
或
df1.loc[df1.Outcome == 1.0].sum().to_frame().T