该楼层疑似违规已被系统折叠隐藏此楼查看此楼
用Python做数据分析,Numpy,Pandas,matplotlib是怎么也绕不开的三个包,我最开始学习pandas是看的《利用Python进行数据分析》,看了好几遍,不是从头到尾看了好几遍,是顺着看、挑着看、精读略读强行读,一直没坚持完整过一遍。
后来发现了广受好评的《10分钟搞定pandas》。这是官方出品的,于是我马上动手跟着做,才发现作者就是个标题党,花了一个多小时才过完一遍。我觉得书名应该是《(每天)10分钟(一周)搞定pandas》。标题党归标题党,内容还是很好的,就是我觉得还是有点偏长,尤其对于像我这样学习自制力极差的同学。
所以这篇文章,我总结了我认为的Pandas最常用的功能,供大家学习借鉴。
导入包
import pandas as pd
import numpy as np
导入数据
#默认utf-8,gbk对中文的支持更好
pd.read_csv(filename,encoding='gbk')
#key是列名,value是数据,从字典导入数据需要指定index
dict1 = {'a':1,'b':2}
df = pd.DataFrame(dict1,index=[0])
查看数据
#行数、列数
df.shape[0]
df.shape[1]
#前几行,后几行,默认为5
df.head()
df.tail(3)
#数据汇总统计
df.describe()
#数据概况
df.info()
#列名
df.columns
#数据类型
df.dtypes
#各列平均值
df.mean()
数据选取
#按列名查看某列
df[col_name]
df.col_name
#查列名看多列
df[[col1,col2]]
#按索引查看某行,第一行:
df.iloc[0]
#按索引查看某行某列,三行四列那个元素
df.iloc[2,3]
数据合并
#按行拼接
pieces = [df[2:20],df[23:30],df[35:40]]
下面这句replace知乎一直报未知错误(醉了,我在整篇文章中用二分法试出来两句),只能截图
#按列拼接
left = pd.DataFrame({'key': ['foo', 'bar'], 'col1': [1, 2]})
right = pd.DataFrame({'key': ['foo', 'bar'], 'col2': [4, 5]})
pd.merge(left,right,on='key')
#增加一列
df = pd.DataFrame(np.random.randn(8, 4), columns=['A','B','C','D'])
extra = df.iloc[-1]
data = df.append(extra)
数据清理 (注意: 修改DataFrame要赋值)
#检查是否空值,返回布尔值(True,False)
df.isnull()
#返回各列空值的个数
df.isnull().sum()
#处理空值,用x替换空值
df = df.fillna(x)
#删除包含空值的行
df = df.dropna()
#删除包含空值的列
df = df.dropna(axis=1)
数据处理
#选择某列大于1的行
df[df[colname]>1]
#选择某列包含x或者y字段的行,pandas有很多字符串处理函数
df[df[colname].str.contains(x|y)]
下面这句replace知乎一直报未知错误(再次醉了),只能截图
#转换数据类型
df.num = df.num.astype(float)
#查看某列的唯一值的个数
df.colname.value_counts()
#按照某列排序(默认升序)
df.sort_values(by = colname,ascending=True)
#应用函数,简单的可以用lambda
df.apply(lambda x:x.max()-x.min())
#复杂的可以先定义好函数
def func():
pass
df.apply(func)
#也可以用numpy自带的,例如cumsum累加
df.apply(np.cumsum)
分组聚合
#准备数据
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
'foo', 'bar', 'foo', 'foo'],
'B' : ['one', 'one', 'two', 'three',
'two', 'two', 'one',
如果觉得《python numpy pandas 书 全_用Python做数据分析 Numpy Pandas matp》对你有帮助,请点赞、收藏,并留下你的观点哦!