本指南直接来自pandas官方网站上的10分钟pandas指南。 我将它改写以使代码更易于访问。 本指南适用于之前未使用pandas的初学者。
使用如下缩写:
df:任意的Pandas DataFrame对象
s:任意的Pandas Series对象
创建数据
# -*- coding: utf-8 -*-""" Created on Tue Aug 14 14:12:39 2018 @author: 夜神moon """ # In[*] #加载相关包import pandas as pdimport numpy as npimport matplotlib.pyplot as plt
创建对象
# In[*] s = pd.Series([1,3,5,np.nan,6,8])
s = pd.Series([1,3,5,np.nan,6,8])
s
Out[4]:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
通过传递一个numpy array,时间索引以及列标签来创建一个DataFrame:
dates = pd.date_range('20141101', periods=6) dates df = pd.DataFrame(np.random.randn(6,4), index=dates,columns=['one','two','three','four']) df Out[5]: one two three four 2014-11-01 2.220859 0.303361 1.594748 -1.381258 2014-11-02 -0.712405 -1.659302 0.050692 1.258252 2014-11-03 0.375293 0.884031 0.439022 0.703665 2014-11-04 0.787441 -0.413331 -2.767427 -0.763200 2014-11-05 -1.523144 0.030411 0.916363 -0.808864 2014-11-06 -0.884664 -0.188278 -0.307767 -0.054792
通过传递一个能够被转换成类似序列结构的字典对象来创建一个DataFrame:
df2 = pd.DataFrame({ 'A' : 1., 'B' : pd.Timestamp('20130102'), 'C' : pd.Series(1,index=list(range(4)),dtype='float32'), 'D' : np.array([3] * 4,dtype='int32'), 'E' : pd.Categorical(["test","train","test","train"])}) df2
常用的导入数据函数
导入数据 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.head(n):查看DataFrame对象的前n行 df.tail(n):查看DataFrame对象的最后n行 df.index 查看行名 df.columns 查看列名 df.values 查看矩阵 df.shape():查看行数和列数 df.info():查看索引、数据类型和内存信息 df.describe():查看数值型列的汇总统计 s.value_counts(dropna=False):查看Series对象的唯一值和计数 df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
数据排序
df.sort_index(axis=1, ascending=False) # 即按列名排序,交换列位置。df.sort_values(by='B') # 按照列B的值升序排序
数据选取
df[col]:根据列名,并以Series的形式返回列df[[col1, col2]]:以DataFrame形式返回多列s.iloc[0]:按位置选取数据s.loc['index_one']:按索引选取数据df.iloc[0,:]:返回第一行df.iloc[0,0]:返回第一列的第一个元素
查看第四行数据
df.loc[dates[3]]Out[17]: one 0.787441two -0.413331three -2.767427four -0.763200Name: 2014-11-04 00:00:00, dtype: float64
通过标签来在多个轴上进行选择
df.loc[:,['A','B']] # A B# 2013-01-01 0.469112 -0.282863# 2013-01-02 1.212112 -0.173215# 2013-01-03 -0.861849 -2.104569# 2013-01-04 0.721555 -0.706771# 2013-01-05 -0.424972 0.567020# 2013-01-06 -0.673690 0.113648
标签切片
df2.loc['1':'3',['A','B']]Out[23]: A B1 1.0 2013-01-022 1.0 2013-01-023 1.0 2013-01-02
数据统计
df.describe():查看数据值列的汇总统计df.mean():返回所有列的均值df.corr():返回列与列之间的相关系数df.count():返回每一列中的非空值的个数df.max():返回每一列的最大值df.min():返回每一列的最小值df.median():返回每一列的中位数df.std():返回每一列的标准差
作者:夜神moon
链接:https://www.jianshu.com/p/72a5ca5dbe73
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦