Pandas

一、创建

import pandas as pd
import numpy as np

boolean=[True,False]
gender=["",""]
color=["white","black","yellow"]
data=pd.DataFrame({
    "height":np.random.randint(150,190,100),
    "weight":np.random.randint(40,90,100),
    "smoker":[boolean[x] for x in np.random.randint(0,2,100)],
    "gender":[gender[x] for x in np.random.randint(0,2,100)],
    "age":np.random.randint(15,90,100),
    "color":[color[x] for x in np.random.randint(0,len(color),100) ]
}
)

 

二、常用属性

#属性
data.columns            
data.index       
data.values    
data.shape
###################################################
#统计信息
data.count()
data.info()
data.describe()
#列累计和
data.cumsum()
#列插值相减
data.diff(periods=1,axis=0)
#相关系数
data.corr()

#统计某列数据分布(数值和对应的数量)
data['color'].value_counts()

#枚举某一列 
data['gender'].unique() 
#返回前N条,后M条 
data.head(n=N) 
data.tail(n=M) 


##选择数据,
#第一种是根据位置,第二种是根据index和columns的名字选择
data.iloc[0,0]   
data.loc[2:4,['height','weight']]

 

 三、方法

#根据布尔值筛选数据
data[data['gender']=='']

#返回每个元素在当前列的排名,从小到大
data.rank()  
#根据列进行排序
data.sort_values(by=['height', 'weight'],ascending=False) 
#修改index
data.reindex(index=np.arange(len(data))[::-1])
#重置index
data.reset_index()

#直接删除某一列  
del data['height']           
#删除指定列或行,axis删除列。inplace表示替换原数据      
data.drop(['height','weight'],axis=1,inplace=True)   

 

缺失值处理

dropna:删除缺失值

isna、notna:判断缺失值

fillna、interpolate:填补缺失值

 

dataFrame.dropna(axis = 0,how ='any',thresh = None,subset = None,inplace = False )

axis:确定删除缺失值的行或列。axis=0:删除包含缺失值的行。axis=1:删除包含缺失值的列。

how:删除方式。how=’any’:删除包含缺失值的行或列。how=’all’:只有行或列都为缺失值才会被删除。

thresh:设置需要的非缺失值。当thresh=2:保存包含至少有两个非缺失值的行或列。

subset:删除行时候,可选择某些列,subset=['height','weight']

inplace:是否对原数据集进行处理替换。inplace=True替换修改原对象。

 

dataFrame.isna()用来判断DataFrame是否缺失值。如果是缺失值则为True,否则为False。

dataFrame.notna()刚好相反,如果是缺失值则为False,否则为True。

 

DataFrame.fillna(value = None,method= None, inplace= False,limit =None)

value:用于指定用何值填充缺失值。可以是一个标量,如value=0,用0填补所有缺失值。可以是一个字典,键为需要填充的列名,值为需要填充的内容。

method:

  pad/ffill:用前一个非缺失值去填充该缺失值

  backfill/bfill:用下一个非缺失值填充该缺失值

  None:指定一个值去替换缺失值(缺省默认这种方式),此时用value替换

inplace:是否替换原对象。

limit:在指定method时,控制向前或向后填充缺失值的最大数量。

 

 

 

 

 

 

 

四、高级方法

4.1 map

该函数对pandas的某一列执行函数。

#①使用字典进行映射
data["gender"] = data["gender"].map({"":1, "":0})

#②使用函数
def age_map(x):
    gender = x if x >50 else 50
    return gender
#注意这里传入的是函数名,不带括号
data["age"] = data["age"].map(age_map)

 4.2 聚合groupby

https://baijiahao.baidu.com/s?id=1644900050125304030&wfr=spider&for=pc

 

4.3 数据合并concat merge

https://www.jianshu.com/p/fe47c70d31f9

posted on 2020-03-08 18:26  yukizzc  阅读(149)  评论(0)    收藏  举报