pandas 基本特性メソッド ランダム整理(3つ) --- 記述統計 / 重複排除カウント / グループソート
- グループ化・ソート
- Series.value_counts() & drop_duplicates()
データセット
baby_names.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1016395 entries, 0 to 1016394
Data columns (total 5 columns):
Name 1016395 non-null object
Year 1016395 non-null int64
Gender 1016395 non-null object
State 1016395 non-null object
Count 1016395 non-null int64
dtypes: int64(2), object(3)
memory usage: 38.8+ MB
baby_names.head()
Out[30]:
Name Year Gender State Count
0 Emma 2004 F AK 62
1 Madison 2004 F AK 48
2 Hannah 2004 F AK 46
3 Grace 2004 F AK 44
4 Emily 2004 F AK 41
- Tips:value_counts() & drop_duplicates()
value_counts()
:
Series.value_counts()
発生頻度
(ただし、DataFrame (baby_names) とDataFrameのグループ化 (DataFrame.groupby()) には、value_counts() プロパティはありません)
1) データセットに含まれる名前の数(重複排除後の'Name'の数)
方法です。
1) baby_names['Name'].value_counts().shape。
2) baby_names.drop_duplicates('名前').counts()の場合
(注:方法2) drop_duplicats('Name')はname列が重複していないことを意味し、drop_duplicats(['Name', 'Gender')] ならタプル (Name, Gender) 全体として重複していない (Lucy, F) と (Lucy, M) 全体として重複していない、2データとカウントされます)
baby_names['Name'].value_counts().shape
Out[92]: (17632,)
baby_names.drop_duplicates('Name').counts()
Out[91]:
Name 17632
Year 17632
Gender 17632
State 17632
Name 17632 Year 17632 Gender 17632 State 17632
dtype: int64
AttributeError: 'DataFrame' object has no attribute 'value_counts'
AttributeError: 'DataFrameGroupBy' object has no attribute 'value_counts'
names['Count'].idxmax()
Out[103]: 'Jacob'
説明 データセット中の各Name要素の出現頻度が1回以上であることを、Seriesのvalue_counts()属性で判定する。
補足です。説明と要約統計。
a)
idxmax()
: を取得する機能
最大値
データの
のインデックス値の
質問です。namesのCount列のデータが一番大きい人は誰でしょう?
方法です。
names['Count'].
idxmax()
names[names['Count']==names['Count'].min()].count()
Out[105]:
Year 2578
Count 2578
dtype: int64
names[names['Count']==names['Count'].min()].shape[0]
Out[108]: 2578
len(names[names['Count']==names['Count'].min()])
Out[107]: 2578
b) 数値計算方式。
.count() / .shape / len()
質問です。名前に含まれるCountの値が最も小さい名前の数
方法です。(推奨方法2、方法3)
names['Count'].median() # median of values
Out[119]: 49.0
names['Count'].var() # Variance of sample values
Out[120]: 121133565.13204491
names['Count'].std() # standard deviation of sample values
Out[117]: 11006.069467891111
names.describe()
Out[118]:
Year Count
count 1.763200e+04 17632.000000
mean 1.158117e+05 2008.932169
std 2.451618e+05 11006.069468
min 2.004000e+03 5.000000
25% 4.017000e+03 11.000000
50% 1.606100e+04 49.000000
75% 7.846425e+04 337.000000
max 2.233993e+06 242874.000000
c) .median() / .var() / .std() / .describe() ................................(以下省略
names = baby_names.groupby('Name').sum()
names.head()
Out[56]:
Year Count
Name
Aaban 4027 12
Aadan 8039 23
Aadarsh 2009 5
Aaden 393963 3426
Aadhav 2014 6
len(names) # How many different names exist in the dataset?
Out[74]: 17632
- サブグループ
baby_names.groupby('Name'). agg_func()
names['Count'].sort_values(ascending=False).head()
Out[67]:
Name
Jacob 242874
Emma 214852
Michael 214405
Ethan 209277
Isabella 204798
Name: Count, dtype: int64
names.sort_values(by=['Count'],ascending=False).head()
Out[68]:
Year Count
Name
Jacob 1141099 242874
Emma 1137085 214852
Michael 1161152 214405
Ethan 1139091 209277
Isabella 1137090 204798
- 並び替え
2つの入出力は異なるフォーマットでレンダリングされていることに注意してください。
names['Count'].sort_values(ascending=False).head()
Out[67]:
Name
Jacob 242874
Emma 214852
Michael 214405
Ethan 209277
Isabella 204798
Name: Count, dtype: int64
names.sort_values(by=['Count'],ascending=False).head()
Out[68]:
Year Count
Name
Jacob 1141099 242874
Emma 1137085 214852
Michael 1161152 214405
Ethan 1139091 209277
Isabella 1137090 204798
関連
-
[解決済み】ピアソン相関計算中に「ValueError: Connectenation axis のすべての入力配列寸法は正確に一致しなければなりません」を取り除くには?
-
[解決済み] ImportError: IProgress が見つかりませんでした。インストールされていますが、jupyterとipywidgetsをアップデートしてください。
-
[解決済み] モジュール 'pandas' には属性 'Panel' がありません。
-
pandas DataFrame を日付比較に変換するとき、datetimelike 値の .dt アクセッサしか使用できないエラーが発生しました。
-
pandasがDataframeやSeriesを扱うとき、カラム名なしでデータのカラムを受け取る。
-
pandasを使ってexcelのvlookup関数を実装する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例