pandas手册

作者: 陌北v1 | 来源:发表于2018-01-17 10:25 被阅读0次
    导入数据
    * pd.read_csv(filename):从CSV文件导入数据
    * pd.read_table(filename):从限定分隔符的文本文件导入数据
    * pd.read_excel(filename):从Excel文件导入数据
    * pd.read_sql(query, connection_object):从SQL表/库导入数据
    * pd.read_json(json_string):从JSON格式的字符串导入数据
    * pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
    * pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
    * pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据
    
    导出数据
    * df.to_csv(filename):导出数据到CSV文件
    * df.to_excel(filename):导出数据到Excel文件
    * df.to_sql(table_name, connection_object):导出数据到SQL表
    * df.to_json(filename):以Json格式导出数据到文本文件
    
    查看、检查数据
    * df.head(n):查看DataFrame对象的前n行
    * df.tail(n):查看DataFrame对象的最后n行
    * df.shape():查看行数和列数
    * http://df.info():查看索引、数据类型和内存信息
    * df.describe():查看数值型列的汇总统计
    * s.value_counts(dropna=False):查看Series对象的唯一值和计数
    * df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
    
    数据选取
    * df[col]:根据列名,并以Series的形式返回列
    * df[[col1, col2]]:以DataFrame形式返回多列
    * s.iloc[0]:按位置选取数据
    * s.loc['index_one']:按索引选取数据
    * df.iloc[0,:]:返回第一行
    * df.iloc[0,0]:返回第一列的第一个元素
    
    数据清理
    * df.columns = ['a','b','c']:重命名列名
    * pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
    * pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
    * df.dropna():删除所有包含空值的行
    * df.dropna(axis=1):删除所有包含空值的列
    * df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
    * df.fillna(x):用x替换DataFrame对象中所有的空值
    * s.astype(float):将Series中的数据类型更改为float类型
    * s.replace(1,'one'):用‘one’代替所有等于1的值
    * s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
    * df.rename(columns=lambda x: x + 1):批量更改列名
    * df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
    * df.set_index('column_one'):更改索引列
    * df.rename(index=lambda x: x + 1):批量重命名索引
    
    数据处理:Filter、Sort和GroupBy
    * df[df[col] > 0.5]:选择col列的值大于0.5的行
    * df.sort_values(col1):按照列col1排序数据,默认升序排列
    * df.sort_values(col2, ascending=False):按照列col1降序排列数据
    * df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
    * df.groupby(col):返回一个按列col进行分组的Groupby对象
    * df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象
    * df.groupby(col1)[col2]:返回按列col1进行分组后,列col2的均值
    * df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的##### 数据透视表
    * df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值
    * data.apply(np.mean):对DataFrame中的每一列应用函数np.mean
    * data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max
    
    数据合并
    * df1.append(df2):将df2中的行添加到df1的尾部
    * df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
    * df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join
    
    数据统计
    * df.describe():查看数据值列的汇总统计
    * df.mean():返回所有列的均值
    * df.corr():返回列与列之间的相关系数
    * df.count():返回每一列中的非空值的个数
    * df.max():返回每一列的最大值
    * df.min():返回每一列的最小值
    * df.median():返回每一列的中位数
    * df.std():返回每一列的标准差
    
    pandas查询数据

    这里的查询数据相当于R语言里的subset功能,可以通过布尔索引有针对的选取原数据的子集、指定行、指定列等。我们先导入一个student数据集:

    1. student = pd.io.parsers.read_csv('C:\\Users\\admin\\Desktop\\student.csv')
    

    查询数据的前5行或末尾5行

    1. student.head()
    2. student.tail()
    

    查询指定的行

    1. student.ix[[0,2,4,5,7]] #这里的ix索引标签函数必须是中括号[]
    

    查询指定的列

    1. student[['Name','Height','Weight']].head() #如果多个列的话,必须使用双重中括号
    

    也可以通过ix索引标签查询指定的列

    1. student.ix[:,['Name','Height','Weight']].head()
    

    查询指定的行和列

    1. student.ix[[0,2,4,5,7],['Name','Height','Weight']].head()
    

    以上是从行或列的角度查询数据的子集,现在我们来看看如何通过布尔索引实现数据的子集查询。
    查询所有女生的信息

    1. student[student['Sex']=='F']
    

    查询出所有12岁以上的女生信息

    1. student[(student['Sex']=='F') & (student['Age']>12)]
    

    查询出所有12岁以上的女生姓名、身高和体重

    1. student[(student['Sex']=='F') & (student['Age']>12)][['Name','Height','Weight']]
    

    上面的查询逻辑其实非常的简单,需要注意的是,如果是多个条件的查询,必须在&(且)或者|(或)的两端条件用括号括起来。

    统计分析

    pandas模块为我们提供了非常多的描述性统计分析的指标函数,如总和、均值、最小值、最大值等,我们来具体看看这些函数:
    首先随机生成三组数据

    1. np.random.seed(1234)
    2. d1 = pd.Series(2*np.random.normal(size = 100)+3)
    3. d2 = np.random.f(2,4,size = 100)
    4. d3 = np.random.randint(1,100,size = 100)
    5. d1.count() #非空元素计算
    6. d1.min() #最小值
    7. d1.max() #最大值
    8. d1.idxmin() #最小值的位置,类似于R中的which.min函数
    9. d1.idxmax() #最大值的位置,类似于R中的which.max函数
    10. d1.quantile(0.1) #10%分位数
    11. d1.sum() #求和
    12. d1.mean() #均值
    13. d1.median() #中位数
    14. d1.mode() #众数
    15. d1.var() #方差
    16. d1.std() #标准差
    17. d1.mad() #平均绝对偏差
    18. d1.skew() #偏度
    19. d1.kurt() #峰度
    20. d1.describe() #一次性输出多个描述性统计指标

    相关文章

      网友评论

        本文标题:pandas手册

        本文链接:https://www.haomeiwen.com/subject/hapyoxtx.html