Panda DataFrame'in satır sayısını nasıl alabilirim?
Bu tablo, önerilen yöntemlerle birlikte bir DataFrame'de (veya tamlık için Seride) bir şey saymak istediğiniz farklı durumları özetler.

Dipnotlar
DataFrame.countSeriesnull olmayan sayım sütuna göre değiştiğinden her sütun için sayıları döndürür .
DataFrameGroupBy.sizeSeriesaynı gruptaki tüm sütunlar aynı satır sayısını paylaştığından, a değerini döndürür .
DataFrameGroupBy.countDataFramenull olmayan sayım aynı gruptaki sütunlar arasında farklılık gösterebileceğinden a değerini döndürür . Belirli bir sütun için grup bazında null olmayan sayımı elde etmek için, df.groupby(...)['x'].count()burada "x" sayılacak sütundur.
Minimum Kod Örnekleri
Aşağıda, yukarıdaki tabloda açıklanan yöntemlerin her birinin örneklerini göstereceğim. İlk olarak, kurulum -
df = pd.DataFrame({
'A': list('aabbc'), 'B': ['x', 'x', np.nan, 'x', np.nan]})
s = df['B'].copy()
df
A B
0 a x
1 a x
2 b NaN
3 b x
4 c NaN
s
0 x
1 x
2 NaN
3 x
4 NaN
Name: B, dtype: object
Bir DataFrame Satır sayısı: len(df), df.shape[0]ya dalen(df.index)
len(df)
# 5
df.shape[0]
# 5
len(df.index)
# 5
Sabit zaman operasyonlarının performansını karşılaştırmak aptalca gözüküyor, özellikle de fark "ciddi olarak endişelenme" seviyesindeyken. Ama bu diğer cevaplarla bir eğilim gibi gözüküyor, bu yüzden aynısını tamlık için yapıyorum.
Yukarıdaki 3 yöntemden len(df.index)(diğer cevaplarda belirtildiği gibi) en hızlı olanıdır.
Not
- Yukarıdaki tüm yöntemler, basit özellik aramaları oldukları için sabit zamanlı işlemlerdir.
df.shape(benzeri ndarray.shape), bir demet döndüren bir özelliktir (# Rows, # Cols). Örneğin, buradaki örnek için df.shapedöner (8,
2).
Sütun bir DataFrame arasında Sayısı: df.shape[1],len(df.columns)
df.shape[1]
# 2
len(df.columns)
# 2
Buna benzer olarak len(df.index), len(df.columns)iki yöntemin daha hızlıdır (ancak yazmak için daha fazla karakter alır).
Satır Bir Seri Sayısı: len(s), s.size,len(s.index)
len(s)
# 5
s.size
# 5
len(s.index)
# 5
s.sizeve len(s.index)hız açısından hemen hemen aynı. Ama tavsiye ederim len(df).
Not
size bir özniteliktir ve öğe sayısını döndürür (= herhangi bir Seri için satır sayısı). DataFrames, aynı sonucu döndüren bir boyut niteliği de tanımlar df.shape[0] * df.shape[1].
Null Olmayan Satır Sayısı: DataFrame.countveSeries.count
Burada açıklanan yöntemler sadece null olmayan değerleri sayar (yani NaN'ler dikkate alınmaz).
Aramak DataFrame.count, her sütun için NaN olmayan sayılar döndürür :
df.count()
A 5
B 3
dtype: int64
Seriler Series.countiçin benzer etkiyi kullanın :
s.count()
# 3
Grup bazında Satır Sayısı: GroupBy.size
İçin DataFrames, DataFrameGroupBy.sizegrup başına satır sayısını saymak için kullanın .
df.groupby('A').size()
A
a 2
b 2
c 1
dtype: int64
Benzer şekilde, Serieskullanacaksınız SeriesGroupBy.size.
s.groupby(df.A).size()
A
a 2
b 2
c 1
Name: B, dtype: int64
Her iki durumda da a Seriesdöndürülür. DataFramesTüm gruplar aynı satır sayısını paylaştığından bu da mantıklıdır .
Grup olarak Null Olmayan Satır Sayısı: GroupBy.count
Yukarıdakine benzer, ancak kullanın GroupBy.count, değil GroupBy.size. Not sizeher zaman döndürür Seriesiken countdöner bir Seriesbelirli bir sütunda ya da başka a çağrıda eğer DataFrame.
Aşağıdaki yöntemler aynı şeyi döndürür:
df.groupby('A')['B'].size()
df.groupby('A').size()
A
a 2
b 2
c 1
Name: B, dtype: int64
Bu arada, için count, elimizdeki
df.groupby('A').count()
B
A
a 2
b 1
c 0
... tüm GroupBy nesnesine çağrıldı, v / s,
df.groupby('A')['B'].count()
A
a 2
b 1
c 0
Name: B, dtype: int64
Belirli bir sütunda çağrılır.