1. ホーム
  2. python

[解決済み] Python Pandasです。.value_counts "の出力をdataframeに変換する

2022-10-28 04:52:33

質問

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

ありがとうございました。

どのように解決するのですか?

使用方法 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列のデータフレームが必要な場合は Series.to_frame :

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