用Python数据分析, 往往得先把原始数据导入到pandas的Dataframe. 如下图
处理数据前, 我们得先粗略了解数据面貌, 至少要清楚数据有几列, 有几行, 哪些是数值, 能求平均数、最大值、最小值, 哪些些类别型数据, 需要统计数量.
1. 几行几列
英文shape, 表示形状, 数据结果为
(318,20)
表示数据共有318行, 20列
2. 前几行, 最后几列
默认输出前5列, 可以在()写想要的行数. 比如需要显示前10行,
用tail()显示最后几列,
tail意思是“尾巴”.
你可能注意到, 刚刚输出结果的列显示不全. 除了往右拖鼠标查看(列数太多也会不方便), 还可以用下面方法.
3. 每一列的内容是什么
信息总览, 首选info (information)
上图结果, 学过英文, 很容易理解
[1] index: 索引,作用相当于excel最左边的1,2,3, 用来定位第几行; entry (entries) 表示条目/记录, 上图显示db一共有318条记录(行). Afghanistan是第一条的索引, Zimbabwe是最后一条的索引.
[2] column (columns): 列, 本次数据共有20列 ( 不含索引)
[3] 每一列的名称
[4]non-null: null表示“空”, non=非, 因此non-null表示该列不是空白的单元格.
float64: 单元格里面数据的类型, float表示带小数点的数值, 64占64bits内存
有时候, 只想了解一下列名就行, columns能派上用场了.
数据有上百列时, .columns特别有用
4. 每一列的数据有什么特征
想要了解每一个的最大值, 最小值, 平均值等统计信息时, .describe()一键搞定
结果包括
- count: 非空格行数
- mean: 平均值, excel中的average
- std: standard deviation缩写, 标准差
- min: minimum缩写, 最小值
- 25%, 50%...(percentile) : 第25%的值
- max: maximum缩写, 最大值
我们也可以定制化统计内容, 比如只求所有行的平均数
- agg: aggregate缩写. aggregate英文意思是“合计, 总计“, ()里面填写需要合集的公式
- np.mean: 使用前, 需先导入numpy库
你可以按需要多加几个统计量, 比如平均值,最小值, 最大值
db.agg([np.mean, min, max])
注意, 此时agg() 里面是一个列表(list), 所有公式外加[]
类别型数据, 就是那些不能四则运算的数据
describe()也同样适用
- count: 统计共有多少行
- unique: 比如State那列是50, 表示State(州)那列, 除掉重复的, 共有几个州
- top: 出现频率最高的一项
- freq: frequence缩写, 出现最高频率是几次
看到这, 你难免想知道哪个州出现频率第二多, 第三多, 哪个州最少, 可以用value_counts()
db['State'].value_counts()
- db['State']: 选择State列
系统默认下从高频项排到低频项, 想要从小到大排列, 可以加ascending=False
- ascending: 来自ascend (上升)+ ing
如果想知道每一项的出现频率占比, 只要加入normalize=True即可
db['State'].value_counts(normalize=True)
这是我自学数据分析的第一篇总结.
相关阅读:
沧海为水:Python文本处理(一)基础小抄zhuanlan.zhihu.com
沧海为水:Python文本处理(二)文本格式化(formatting)zhuanlan.zhihu.com
这是我的第1篇Python学习笔记. 题图来自unsplash.