Python Pandas: 「.value_counts」出力をデータフレームに変換する 質問する

Python Pandas: 「.value_counts」出力をデータフレームに変換する 質問する

こんにちは。データフレームの一意の値の数を取得したいです。count_values はこれを実装していますが、その出力を他の場所で使用したいと思います。.count_values 出力を pandas データフレームに変換するにはどうすればよいでしょうか。以下にサンプル コードを示します。

import pandas as pd
df = pd.DataFrame({'a':[1, 1, 2, 2, 2]})
value_counts = df['a'].value_counts(dropna=True, sort=True)
print(value_counts)
print(type(value_counts))

出力は次のようになります。

2    3
1    2
Name: a, dtype: int64
<class 'pandas.core.series.Series'>

必要なのは次のようなデータフレームです:

unique_values  counts
2              3
1              2

ありがとう。

ベストアンサー1

使用rename_axisインデックスからの列名とreset_index:

df = df.value_counts().rename_axis('unique_values').reset_index(name='counts')
print (df)
   unique_values  counts
0              2       3
1              1       2

または、1列のDataFrameが必要な場合はSeries.to_frame:

df = df.value_counts().rename_axis('unique_values').to_frame('counts')
print (df)
               counts
unique_values        
2                   3
1                   2

おすすめ記事