පැන්ඩාස් දත්ත රාමුවක පේළි ගණන ලබා ගන්නේ කෙසේද?
මෙම වගුව මඟින් ඔබට නිර්දේශිත ක්රමවේදය සමඟ දත්ත රාමුවක (හෝ ශ්රේණියේ, සම්පූර්ණත්වය සඳහා) යමක් ගණනය කිරීමට අවශ්ය විවිධ අවස්ථා සාරාංශ කරයි.
පාද සටහන්
DataFrame.count
Series
ශුන්ය නොවන ගණනය තීරුව අනුව වෙනස් වන බැවින් එක් එක් තීරුව සඳහා ප්රතිලාභ ගණනය කිරීම්.
DataFrameGroupBy.size
Series
එකම කණ්ඩායමේ සියලුම තීරු එකම පේළි ගණන බෙදා ගන්නා බැවින් a නැවත ලබා දෙයි .
DataFrameGroupBy.count
DataFrame
ශුන්ය නොවන ගණනය එකම කණ්ඩායමේ තීරු හරහා වෙනස් විය හැකි බැවින් a නැවත ලබා දෙයි . නිශ්චිත තීරුවක් සඳහා කණ්ඩායම් වශයෙන් ශුන්ය නොවන ගණනය ලබා ගැනීම සඳහා, df.groupby(...)['x'].count()
"x" යනු ගණනය කළ යුතු තීරුව භාවිතා කරන්න .
අවම කේත උදාහරණ
ඉහත වගුවේ විස්තර කර ඇති එක් එක් ක්රම සඳහා උදාහරණ පහත දැක්වේ. පළමුව, සැකසුම -
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
එය DataFrame ක පේළිය ගණන්: len(df)
, df.shape[0]
, හෝlen(df.index)
len(df)
# 5
df.shape[0]
# 5
len(df.index)
# 5
නියත කාල මෙහෙයුම් වල ක්රියාකාරිත්වය සංසන්දනය කිරීම මෝඩකමක් ලෙස පෙනේ, විශේෂයෙන් වෙනස “බැරෑරුම් ලෙස, ඒ ගැන කරදර නොවන්න” මට්ටමේ සිටින විට. නමුත් මෙය වෙනත් පිළිතුරු සමඟ ප්රවණතාවක් ලෙස පෙනේ, එබැවින් මම සම්පූර්ණත්වය සඳහාද එසේ කරමි.
ඉහත ක්රම 3 අතුරින් len(df.index)
(වෙනත් පිළිතුරු වල සඳහන් පරිදි) වේගවත්ම වේ.
සටහන
- ඉහත සඳහන් සියලු ක්රම නියත කාල මෙහෙයුම් වන බැවින් ඒවා සරල ගුණාංග සොයා බැලීම් වේ.
df.shape
(සමාන ndarray.shape
) යනු ගුණාංගයක් ලබා දෙන ගුණාංගයකි (# Rows, # Cols)
. උදාහරණයක් ලෙස, මෙහි උදාහරණය සඳහා df.shape
ප්රතිලාභ (8,
2)
.
එය DataFrame වැනි තීරෙයහි ගණන්: df.shape[1]
,len(df.columns)
df.shape[1]
# 2
len(df.columns)
# 2
මිනී මැරුවා len(df.index)
, len(df.columns)
ක්රම දෙකක් වේගවත් වේ (නමුත් වර්ගය වැඩි චරිත ගනී).
මාලාවක පේළිය ගණන්: len(s)
, s.size
,len(s.index)
len(s)
# 5
s.size
# 5
len(s.index)
# 5
s.size
සහ len(s.index)
වේගය අනුව සමාන වේ. නමුත් මම නිර්දේශ කරමි len(df)
.
සටහන
size
යනු ගුණාංගයක් වන අතර, එය මූලද්රව්ය ගණන නැවත ලබා දෙයි (= ඕනෑම ශ්රේණියක් සඳහා පේළි ගණන). ඩේටා ෆ්රේම්ස් ද ප්රමාණයේ ලක්ෂණයක් අර්ථ දක්වයි df.shape[0] * df.shape[1]
.
ශුන්ය නොවන පේළි ගණන: DataFrame.count
සහSeries.count
මෙහි විස්තර කර ඇති ක්රම ගණනය කරනුයේ ශුන්ය නොවන අගයන් පමණි (එනම් NaNs නොසලකා හරිනු ලැබේ).
ඇමතුම් DataFrame.count
සඳහා-නන් නොවන චෝදනා ආපසු එක් එක් තීරුවේ:
df.count()
A 5
B 3
dtype: int64
ශ්රේණි සඳහා, Series.count
සමාන බලපෑමක් සඳහා භාවිතා කරන්න:
s.count()
# 3
කණ්ඩායම් වශයෙන් පේළි ගණන: GroupBy.size
සඳහා DataFrames
, DataFrameGroupBy.size
කණ්ඩායමකට පේළි ගණන ගණනය කිරීමට භාවිතා කරන්න.
df.groupby('A').size()
A
a 2
b 2
c 1
dtype: int64
ඒ හා සමානව, සඳහා Series
, ඔබ භාවිතා කරනු SeriesGroupBy.size
ඇත.
s.groupby(df.A).size()
A
a 2
b 2
c 1
Name: B, dtype: int64
අවස්ථා දෙකේදීම, a Series
ආපසු ලබා දෙනු ලැබේ. DataFrames
සියලුම කණ්ඩායම් එකම පේළි ගණනය කරන බැවින් මෙයද අර්ථවත් කරයි .
කණ්ඩායම් වශයෙන් ශුන්ය නොවන පේළි ගණන: GroupBy.count
ඉහත ආකාරයට සමාන නමුත් භාවිතා කරන්න GroupBy.count
, නැත GroupBy.size
. බව සටහන size
සෑම විටම නැවත Series
අතර, count
ප්රතිලාභ සඳහා Series
නිශ්චිත තීරුව, හෝ වෙන යම් ඉල්ලා නම් DataFrame
.
පහත දැක්වෙන ක්රම එකම දේ නැවත ලබා දෙයි:
df.groupby('A')['B'].size()
df.groupby('A').size()
A
a 2
b 2
c 1
Name: B, dtype: int64
මේ අතර, සඳහා count
, අපට තිබේ
df.groupby('A').count()
B
A
a 2
b 1
c 0
... සමස්ත GroupBy වස්තුව වෙත කැඳවනු ලැබේ, v / s,
df.groupby('A')['B'].count()
A
a 2
b 1
c 0
Name: B, dtype: int64
නිශ්චිත තීරුවකට කැඳවනු ලැබේ.