我有以下格式的数据框(例如)
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
等等
答案 0 :(得分:69)
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]
答案 1 :(得分:12)
现在有pandas_profiling
个包,它是df.describe()
的更完整替代方案。
如果你的pandas数据帧是df
,下面将返回一个完整的分析,包括一些关于缺失值,偏斜等的警告。它还提供了直方图和相关图。
import pandas_profiling
pandas_profiling.ProfileReport(df)
请参阅详细说明用法的example notebook。
答案 2 :(得分:2)
为了澄清@ EdChum的答案中的一点,根据文档,您可以使用df.describe(include='all')
包含对象列。它不会提供许多统计信息,但会提供一些信息,包括计数,唯一值的数量,最高值。这可能是一个新功能,我不知道,因为我是一个相对较新的用户。