【python数据处理】pandas快速入门集合

目录

Pandas常用数据类型

Series的使用

为Series指定索引值

通过字典创建Series

更改dtype

切片和索引

DataFrame的使用

DataFrame基础属性

排序

选择

 缺失数据的处理

处理方式


import pandas as pd

Pandas常用数据类型

1.Series一维,带标签数组(即索引,第一列为索引,第二列为数据

Series对象本质上由两个数组构成,一个数组构成对象的键(index索引),一个数组构成对象的值(values),键->值

2.DataFrame二维,Series容器

Series的使用

t = pd.Series([1,2,31,12,3,4])
'''
0     1
1     2
2    31
3    12
4     3
5     4
dtype: int64
'''
print(type(t))        # <class 'pandas.core.series.Series'>

为Series指定索引值

t2 = pd.Series([1,23,2,2,1], index = list("abcde"))

a     1
b    23
c     2
d     2
e     1
dtype: int64

通过字典创建Series

temp_dict = {"name":"xiaoming","age":30,"tell":10086}
t3 = pd.Series(temp_dict)
print(t3)
'''
name    xiaoming
age           30
tell       10086
dtype: object
'''

更改dtype

t2.astype(float)

a     1.0
b    23.0
c     2.0
d     2.0
e     1.0
dtype: float64

切片和索引

可以像字典一样直接用key或索引取值

切片:直接传入start end 或者步长即可

索引:一个的时候直接传入序号或者index,多个的时候传入序号或index列表

t3[0]        #'xiaoming'

t3["age"]        #30

t3[["age","tell"]]

        age        30
        tell    10086
        dtype: object

还可以通过布尔索引判断值取出:

t[t>4]

        2    31
        3    12
        dtype: int64

DataFrame的使用

import pandas as pd

import numpy as np

pd.DataFrame(np.arange(12).reshape(3,4))

           0  1   2   3
        0  0  1   2   3
        1  4  5   6   7
        2  8  9  10  11

DataFrame既有行索引又有列索引:

行索引:横向,index,0轴,axis=0

列索引:纵向,columns,1轴,axis=1

t1  = pd.DataFrame(np.arange(12).reshape(3,4),index=list("abc"),columns=list("WXYZ"))

           W  X   Y   Z
        a  0  1   2   3
        b  4  5   6   7
        c  8  9  10  11

可以分别对index和columns切片或索引取值

DataFrame基础属性

  • DataFrame是Series的容器
  • DataFrame也可以传入字典(key相同,values为一个列表),或用列表传入多个key相同的字典
df.shape    #行数,列数
df.dtypes    #列数据类型
df.ndim    #数据维度
df.index    #行索引
df.columns    #列索引
df.vaues    #对象值,ndarray数组

df.head(3)    #显示头部几行,默认5行
df.tail(3)    #显示尾部几行,默认5行
df.info    #相关信息预览:行数,列数,列索引,列非空值个数,行类型,列类型,内存占用

df.describe()    #快速综合统计结果:计数,均值,标准差,最大值,四分位数,最小值

排序

t1_sorted = t1.sort_values(by = "W")

选择

通过标签进行获取:loc

t1.loc["a","Z"]        # 3

t1.loc["a"]

        W    0
        X    1
        Y    2
        Z    3
        Name: a, dtype: int32

t1.loc[["a","b"],["W","Z"]]

           W  Z
        a  0  3
        b  4  7

t1.loc["a":"c",:]        # 注意loc中的冒号是闭合区间

           W  X   Y   Z
        a  0  1   2   3
        b  4  5   6   7
        c  8  9  10  11

通过位置进行获取:iloc

t1.iloc[0]

        W    0
        X    1
        Y    2
        Z    3
        Name: a, dtype: int32

t1.iloc[:,0]

        a    0
        b    4
        c    8
        Name: W, dtype: int32

同样也可以使用布尔索引

&且        |或

【python数据处理】pandas快速入门集合

 缺失数据的处理

判断数据是否为NaN:pd.isnull(xxx)或pd.notnull(xxx)

处理方式

  1. 删除nan所在的行列dropna(axis=0,how="any",inplace=False
  2. 填充数据,t.fillna(t.mean())或t.fiallna(t.median())或t.fillna(0)

其中,在删除nan所在行列时,how为any代表只要有nan就都删,或者all为全部是nan时才删;inplace代表是否原地替换该DataFrame

上一篇:C++ timer execute function in interval time span


下一篇:Numpy数据类型