Seite 1 von 1

Zählen unter Bedingungen

Verfasst: Donnerstag 16. Juli 2020, 17:17
von st_baum
Ich möchte gerne, ähnlich wie ZÄHLWENN in Excel, Werte (0 oder 1) in einer Spalte zählen, sofern eine Bedingung in einer anderen Spalte erfüllt ist.

So sieht der Datensatz aus

Code: Alles auswählen

import pandas as pd
d = {'col1': [1, 2, 3, 3], 'col2': [0, 1, 0, 1]}
df2 = pd.DataFrame(data=d)
Ich hatte mir das wie folgt gedacht:

Code: Alles auswählen

df2['col2'].isin([0]).sum()(df2['col1']  <  3)
Klappt leider nicht. Hat jemand eine Lösung?

Re: Zählen unter Bedingungen

Verfasst: Donnerstag 16. Juli 2020, 17:36
von __blackjack__
@st_baum: Wie soll denn das gewünschte Ergebnis aussehen?

Re: Zählen unter Bedingungen

Verfasst: Donnerstag 16. Juli 2020, 17:38
von st_baum
Achso, das wäre natürlich hilfreich :-P

ich möchte zählen, wie oft der Wert Null in einer Spalte vorkommt. Gezählt werden soll nur, wenn in der anderen Spalte die genannte Bedingung erfüllt ist. Es reicht, wenn die resultierende Zahl in einer variable gespeichert wird.

Re: Zählen unter Bedingungen

Verfasst: Donnerstag 16. Juli 2020, 17:44
von __blackjack__
Also eine Und-Verknüpfung von zwei Bedingungen und dann zählen.

Code: Alles auswählen

In [170]: df2["col1"] < 3                                                       
Out[170]: 
0     True
1     True
2    False
3    False
Name: col1, dtype: bool

In [171]: df2["col2"] == 0                                                      
Out[171]: 
0     True
1    False
2     True
3    False
Name: col2, dtype: bool

In [172]: (df2["col1"] < 3) & (df2["col2"] == 0)                                
Out[172]: 
0     True
1    False
2    False
3    False
dtype: bool

In [173]: ((df2["col1"] < 3) & (df2["col2"] == 0)).sum()                        
Out[173]: 1

Re: Zählen unter Bedingungen

Verfasst: Donnerstag 16. Juli 2020, 18:51
von st_baum
Prima, danke!