Wenn ich einen Tisch wie diesen habe:
df = pd.DataFrame({
'hID': [101, 102, 103, 101, 102, 104, 105, 101],
'dID': [10, 11, 12, 10, 11, 10, 12, 10],
'uID': ['James', 'Henry', 'Abe', 'James', 'Henry', 'Brian', 'Claude', 'James'],
'mID': ['A', 'B', 'A', 'B', 'A', 'A', 'A', 'C']
})
Ich kann count(distinct hID)
in Qlik eine Anzahl von 5 für ein einzigartiges HID finden. Wie mache ich das in Python mit einem Pandas-Datenrahmen? Oder vielleicht ein numpy Array? In ähnlicher Weise count(hID)
bekomme ich 8 in Qlik , wenn ich das tun würde. Was ist der äquivalente Weg, um es bei Pandas zu tun?
df[['mID', 'dID','hID']].groupby('mID').agg(['count', 'size', 'nunique'])
df[['dID','hID']].groupby(df['mID']).agg(['count', 'size', 'nunique'])
df.groupby('mID')[['dID', 'hID']].agg(['count', 'size', 'nunique'])
Antworten:
Zählen Sie verschiedene Werte, verwenden Sie
nunique
:df['hID'].nunique() 5
Zählen Sie nur Nicht-Null-Werte. Verwenden Sie
count
:df['hID'].count() 8
Zählen Sie die Gesamtwerte einschließlich der Nullwerte und verwenden Sie das
size
Attribut:df['hID'].size 8
Bearbeiten, um Bedingung hinzuzufügen
Verwenden Sie die boolesche Indizierung:
df.loc[df['mID']=='A','hID'].agg(['nunique','count','size'])
ODER mit
query
:df.query('mID == "A"')['hID'].agg(['nunique','count','size'])
Ausgabe:
nunique 5 count 5 size 5 Name: hID, dtype: int64
quelle
Wenn ich davon ausgehe, dass Daten der Name Ihres Datenrahmens sind, können Sie Folgendes tun:
data['race'].value_counts()
Dies zeigt Ihnen das jeweilige Element und dessen Häufigkeit.
quelle
data['race'].value_counts(normalize=True)
Oder erhalten Sie die Anzahl der eindeutigen Werte für jede Spalte:
df.nunique() dID 3 hID 5 mID 3 uID 5 dtype: int64
Neu in
pandas 0.20.0
pd.DataFrame.agg
df.agg(['count', 'size', 'nunique']) dID hID mID uID count 8 8 8 8 size 8 8 8 8 nunique 3 5 3 5
Du warst immer in der Lage, ein
agg
innerhalb eines zu tungroupby
. Ich habestack
am Ende verwendet, weil mir die Präsentation besser gefällt.df.groupby('mID').agg(['count', 'size', 'nunique']).stack() dID hID uID mID A count 5 5 5 size 5 5 5 nunique 3 5 5 B count 2 2 2 size 2 2 2 nunique 2 2 2 C count 1 1 1 size 1 1 1 nunique 1 1 1
quelle
Sie können
nunique
in Pandas verwenden:df.hID.nunique() # 5
quelle
hID
Verwenden Sie zum Zählen eindeutiger Werte in der Spalte, z. B. des Datenrahmensdf
, Folgendes :quelle
Sie können eine eindeutige Eigenschaft verwenden, indem Sie die len-Funktion verwenden
quelle