虽说pandas基本上能做到numpy的很多功能,但是实际上效率要比numpy低很多,因此实际运用中pandas大部分是用于数据的读取等操作,对数据的运算依然是依靠更加高效的numpy
import pandas as pd
import numpy as np
NaN大写
基于列
series
创建
pd.Series(np.arrange(10),index = list())
t = pd.Series([1,2,3,4,5],index = list("abcde"))
type(t)
## pandas.core.series.Series
也可以用字典创建
dic = {a:1,b:2,c:3}
pd.Series(dic)
附:字典推导式
a = {string.ascii_uppercase[i]:i for i in range(10)}#连续的大写字母作为索引
string.ascii_lowercase[5:15]
取值
t.["age"] == t.[1]#两种都行
t.index#取所有键
type(t.index)
## pandas.indexes.base.Index
t.values
tpye(t.values)
## numpy.ndarray
方法
大部分通用
where不同
t.where(t>10)#返回全部数据,但不符合条件的值替换为NaN
t.where(t>10,0)#同上,但不满足的值替换为第二个参数
读取数据
pd.read_excel()#具体参数再看具体数据查询
pd.read_sql()
dataframe
创建
行索引 index
列索引 columns
pd.DataFrame(数据,行,列)
pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("WXYZ"))
用字典创建
dic = {age:[17,18],name:["Dave","Mike"]}
pd.DataFrame(dic)
## 结果为2*2,键在columns上
## 也可以将几个相同键值的单值字典放入函数创建
方法
t.index
t.columns
t.values
t.shape
t.dtype # 列数据类型
t.nndim # 数据维度
t[] # 取行或列
t[][] # 取行列
t.head() # 默认5行
t.tail() # 默认5行
t.info() # 行数,列数,列索引,列非空值个数,数据类型,内存占用等
t.describe() # 快速综合统计结果:计数,均值,标准差,最大值,四分位数,最小值
t.loc[] t.loc[[],:] # 按键值取值
t.iloc[] # 按位置获取数据
t.sort_values(by = "X") # 按值排序