次の形式のデータフレームがあります(たとえば)
shopper_num,is_martian,number_of_items,count_pineapples,birth_country,tranpsortation_method
1,FALSE,0,0,MX,
2,FALSE,1,0,MX,
3,FALSE,0,0,MX,
4,FALSE,22,0,MX,
5,FALSE,0,0,MX,
6,FALSE,0,0,MX,
7,FALSE,5,0,MX,
8,FALSE,0,0,MX,
9,FALSE,4,0,MX,
10,FALSE,2,0,MX,
11,FALSE,0,0,MX,
12,FALSE,13,0,MX,
13,FALSE,0,0,CA,
14,FALSE,0,0,US,
Pandasを使用して各列の要約統計を計算するにはどうすればよいですか(列のデータ型は可変で、一部の列には情報がありません
そして、次の形式のデータフレームを返します。
columnname, max, min, median,
is_martian, NA, NA, FALSE
などなど
describe
は、必要なものすべてを提供します。さもなければ、groupbyを使用して集約を実行し、agg関数のリストを渡すことができます。 http://pandas.pydata.org/pandas-docs/stable/groupby .html#applying-multiple-functions-at-once
In [43]:
df.describe()
Out[43]:
shopper_num is_martian number_of_items count_pineapples
count 14.0000 14 14.000000 14
mean 7.5000 0 3.357143 0
std 4.1833 0 6.452276 0
min 1.0000 False 0.000000 0
25% 4.2500 0 0.000000 0
50% 7.5000 0 0.000000 0
75% 10.7500 0 3.500000 0
max 14.0000 False 22.000000 0
[8 rows x 4 columns]
文字列データを含む列など、一部の列は論理的に集計する方法がないため集計できないことに注意してください
必要に応じて、結果を転置できます:
In [47]:
df.describe().transpose()
Out[47]:
count mean std min 25% 50% 75% max
shopper_num 14 7.5 4.1833 1 4.25 7.5 10.75 14
is_martian 14 0 0 False 0 0 0 False
number_of_items 14 3.357143 6.452276 0 0 0 3.5 22
count_pineapples 14 0 0 0 0 0 0 0
[4 rows x 8 columns]
現在、 pandas_profiling
パッケージがあり、これはdf.describe()
のより完全な代替手段です。
pandasデータフレームがdf
の場合、以下は欠損値、歪度などに関する警告を含む完全な分析を返します。ヒストグラムと相関プロットも表示します。
import pandas_profiling
pandas_profiling.ProfileReport(df)
ノートブックの例 の使用法の詳細を参照してください。
@EdChumの答えの1つのポイントを明確にするために、ドキュメントごとに、df.describe(include='all')
を使用してオブジェクト列を含めることができます。多くの統計情報は提供されませんが、カウント、一意の値の数、最高値など、いくつかの情報が提供されます。これは新しい機能かもしれませんが、私は比較的新しいユーザーなのでわかりません。