pandas包的一些功能

series

import pandas as pd
from pandas import Series,DataFrame
data=Series([4,7,-5,3])
data.values #以数组的形式呈现
data=Series([4,7,-5,3],index=["d","b","a","c"]) #自定义index
data.index #查看index
data["a"] #索引查询
data["a"]=5 #更改
data[data>0] #索引正值
np.exp(data)
"b" in data #返回布尔值
data1 = Series(data) #字典转换成series
data=Series(data,index=states) #states是一个包含index的list,若没有对应的,则NaN
pd.isnull(data) #返回都是布尔值的series
pd.notnull(data)
data.isnull()
data1+data2 #series在算数运算中会i懂对齐不同索引的数据
data.name="population" #设置series的名字
data.index.name="state" #索引也可以设定名字哦~~
data.index=["bob","steve","jeff"] #修改索引

DataFrame

frame=DataFrame(data) #字典转化为dataframe,key变列索引
frame=DataFrame(data,columns=["year","state","pop"],index=["one","two","three"]) #columns是列索引,index是行索引
frame.columns #查看列索引
frame.one
frame["state"]
frame.ix["three"] #`.ix`用于对行索引
frame["debt"]=16.5 #16.5覆盖debt列的所有值
frame["debt"]=np.arange(5)
frame["eastern"] = frame.state=="ohio" #得到布尔值
frame=DateFrame(pop) #pop为嵌套字典,外层key为列索引,内层key为行索引
frame.T
frame.index.name="year"
frame.columns.name="state"
frame.values #返回数组

重新索引

data=Series([4.5,7.2,-5.3,3.6],index=["d","b","a","c"])
data1=data.reindex(["a","b","c","d","e"]) #`.reindex`进行索引排序
data1=data.reindex(["a","b","c","d","e"],fill_value=0) #`fill_value=0`即NaN变为0
data.reindex(range(6),method="ffill") #缺失项,前向填充,若method="bfill",即为后项填充
frame=DataFrame(np.arange(9).reshape((3,3)),index=["a","c","d"],columns=["ohio","texas","california"])
frame.reindex(["a","b","c","d"])
frame.ix[["a","b","c","d"],states] #左行索引,右列索引

丢弃指定轴上的项

frame.drop("c") #丢弃行的一项,默认axis=0,丢弃列是,设置axis=1
frame["b":"c"] #!!!!!!利用标签的切片运算与普通的python切片运算不同,其末端是包含的。
data<0 #所有都返回布尔值
data1.add(data2,fill_value=0)

排序和排名

data.sort_index() #按索引排序,默认axis=0
data.sort_index(axis=1,ascending=False) #列索引按降序排序
data.order() #series按值排序,且缺失值会默认放句末
frame.sort_index(by="b") #按b列顺序
frame.sort_index(by=["b","a"])
frame.index.is_unique #索引是否唯一

汇总和计算描述统计

data.sum(axis=1,skipna=False) #skipana排除缺失值,默认为True
data.idxmax() #索引最大值
df.cumsum() #累计加
df.describe() #显示数量、均值、方差、最小最大值、各分位数,非数值型数据返回:count、unique、top、freq
data.corr() #相关系数
data.cov() #协方差
data.corrwith(data.IBM)

唯一值、值计数以及成员资格

data.unique() #显示series中的唯一值
data.value_counts() #series中各值出现频数,默认sort=True
data.isin(["b","c"]) #series是否为b或c

滤除缺失数据

data.dropna() #默认丢弃任何含有缺失值的行
data.dropna(how="all") #how="all"表示只丢弃全为NA的那些行
df.ix[:4,1]=NA #`.ix`函数,若dataframe没有设定index,包含末端
df.fillna({1:0.5,3:-1})
df.fillna(0,inplace=True)

关联

res_detail = pd.merge(ori_res, gp_df, how='left', left_on='cid', right_on='cid')

数据透视表

res_stat = pd.pivot_table(res_detail, index=['CORP', 'aip_corp', 'update_dt'], aggfunc='sum', margins=False)
res_stat = res_stat.reset_index()

猜你喜欢

转载自www.cnblogs.com/kimi765096/p/9052319.html