Pandas: Wie Summe Spalten basierend auf bedingte andere Spalte Werte?

Habe ich Folgendes pandas DataFrame.

import pandas as pd
df = pd.read_csv('filename.csv')

print(df)

     dog      A         B           C
0     dog1    0.787575  0.159330    0.053095
1     dog10   0.770698  0.169487    0.059815
2     dog11   0.792689  0.152043    0.055268
3     dog12   0.785066  0.160361    0.054573
4     dog13   0.795455  0.150464    0.054081
5     dog14   0.794873  0.150700    0.054426
..    ....
8     dog19   0.811585  0.140207    0.048208
9     dog2    0.797202  0.152033    0.050765
10    dog20   0.801607  0.145137    0.053256
11    dog21   0.792689  0.152043    0.055268
    ....

Ich eine neue Spalte erstellen von Summen-Spalten "A", "B", "C" wie folgt:

df['total_ABC'] = df[["A", "B", "B"]].sum(axis=1)

Nun würde ich gerne dies auf der Grundlage einer bedingten, d.h. wenn "A" < 0.78 dann erstellen Sie eine neue Spalte summiert df['smallA_sum'] = df[["A", "B", "B"]].sum(axis=1). Andernfalls wird der Wert sollte null sein.

Wie schafft man bedingte Anweisungen wie diese?

Mein Gedanke wäre, die Nutzung

df['smallA_sum'] = df1.apply(lambda row: (row['A']+row['B']+row['C']) if row['A'] < 0.78))

Aber so funktioniert das nicht und ich bin nicht in der Lage, anzugeben Achse.

Wie erstellen Sie eine Spalte auf der Grundlage der Werte der anderen Spalten?

Könnte man auch etwas tun, so wie jeder df['dog'] == 'dog2' erstellen Spalte dog2_sum, d.h.

 df['dog2_sum'] = df1.apply(lambda row: (row['A']+row['B']+row['C']) if df['dog'] == 'dog2'))

aber mein Ansatz ist falsch.

`

Schreibe einen Kommentar