pandas常用函数与方法
import pandas as pd
pd.__version__
导入并读取数据
path = ".//exercise_data/chipotle.tsv"
chipo = pd.read_csv(path,sep = '\t')
常用的pandas数据读取函数
pd.read_excel() # 读取excel格式文件
pd.read_csv() # 读取csv格式文件
pd.read_table()
注意:csv与tsv格式文件都是使用pd.read_csv()读取,但tsv文件的分隔符是制表符'\t',而csv文件的分隔符为逗号',',函数默认的分隔符为逗号,注意修改分隔符(参数sep)
sep=','指定分隔符,' '内为str,默认为','
sep='\s+': 指代\f\n\t\r\v这些,分别为换页符,换行符,制表符,回车符,垂直制表符
查看数据的基本统计信息
通常使用它来查看数据的基本统计信息(如索引、列数、列名、数据量、数据类型、缺失值、内存等)
DataFrame.info(verbose=None, buf=None, max_cols=None, memory_usage=None, null_counts=None)
查看数据前几行内容
chipo.head() # 默认5行
chipo.head(10) # 查看数据前10行
查看数据最后几行
chipo.tail() #默认5行
chipo.tail(10) # 查看数据后10行
查看数据统计情况
chipo.describe() # 返回数据的count、mean、std、min、max、3个四分位数
查看数据的大小
chipo.size # 返回数据的大小:行数*列数,注意没有括号
查看数据的形状
chipo.shape # 返回二维数组:(行数,列数)
查看数据列名称
chipo.columns
查看数据索引
chipo.index # 返回的是行索引信息
不同值计数
chipo.nunique() # 返回的是不同值的个数
区分:
chipo.unique() # 返回的是不同值
查看某个字段中有哪些不同的值,并计算每个值有多少个重复值
chipo['choice_description'].value_counts()
重置索引
chipo.reset_index(drop=True)
字段求和
chipo['quantity'].sum()
排序
DataFrame.sort_values(by, ascending=True, inplace=False)
inplace默认为False,如果该值为False,那么原来的pd顺序没变,只是返回的是排序的结果
isin
df.E.isin(['a','c']) # 返回一列bool值
分组
drinks.groupby('continent').beer_servings.mean()
解释:按照字段continent分组,并每组的beer_servings求均值
一些统计值函数
df.mean()
df.median()
df.max()
df.min()
df.sum()
日期转换函数
crime.Year = pd.to_datetime(crime.Year,format='%Y')
将参数转换成日期格式,通过format参数设置日期格式
删除列
del crime['Total']
设置索引
crime = crime.set_index('Year', drop = True)
表连接
pd.merge(data1,data2,on='subject_id',how = 'inner')
合并两张表
all_data_col = pd.concat([data1,data2],axis = 1)
axis = 1,按列合并,axis = 0 按行合并
取最大值索引
crime.idxmax(0)
resample函数用法
crimes = crime.resample('10AS').sum() # resample a time series per decades
population = crime['Population'].resample('10AS').max() # 用resample去得到“Population”列的最大值
crimes['Population'] = population # 更新 "Population"
crimes
填充缺失值
iris.petal_length.fillna(1.0,inplace = True)
删除缺失值
iris = iris.dropna(how = 'any')
query
df.query(expr,inplace = False,** kwargs )# 返回布尔表达式为真的行
参数:
# expr:str要评估的查询字符串。你可以在环境中引用变量,在它们前面添加一个'@'字符 。@a + b
# inplace=False:是否修改数据或返回副本
# kwargs:dict关键字参数
返回:DataFrame
注意:expr必须是字符串