栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pandas学习笔记1

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pandas学习笔记1

Pandas数据读取

import pandas as pd
fpath="./1.csv"
ratings=pd.read_csv(fpath)
print(ratings.head())#观看前几行
print(ratings.shape)#返回行数列数
print(ratings.columns)#查看列名列表
print(ratings.index)#观看索引列(左闭右开)
print(ratings.dtypes)#观看每一列的类型

fpath="./studypandas/2.txt"
pvuv=pd.read_csv(
    fpath,
    sep='t',
    header=None,
    names=['first','second','third']
)
print(pvuv)

Pandas数据结构

s1=pd.Series([1,'a',111])
print(s1)
print(s1.index)
print(s1.values)
#指定索引
s1=pd.Series([1,'a',111],index=['aa','bb','cc'])
print(s1)
print(s1.index)
print(s1.values)
#使用python的字典创series
sdata={'apple':1,'banana':2,'coconut':3}
s1=pd.Series(sdata)
print(s1)
print(s1['apple'])
print(s1[['apple','banana']])


#根据多个字典序列创建dataframe
data={
    'state':['wo','shi','xiao','zhu'],
    'year':[2000,2001,2002,2003],
    'pop':[1.5,1.7,1.8,1.9]
}
df=pd.DataFrame(data)
print(df)


#从dataframe中查询出series
print(df['state'])#查询一列,数据类型为series
print(df[['state','year']])#数据类型仍未dataframe
print(df.loc[1])#查询一行,数据类型为series
print(df.loc[1:3])#查询多行,数据类型为dataframe,和python切片的区别是区间为闭区间!!!

Pandas数据查询


#设定索引为日期,方便按照日期筛选
fpath1="./studypandas/4.csv"
wea=pd.read_csv(fpath1)
wea.set_index('date',inplace=True)
print(wea.index)
#替换掉温度后的°C方便后续查询
wea.loc[:,'tempmin']=wea['tempmin'].str.replace('°C','').astype('int32')
wea.loc[:,'tempmax']=wea['tempmax'].str.replace('°C','').astype('int32')
print(wea.dtypes)
print(wea.head())#没有单位了

#1、使用单个label的指来查询数据
print(wea.loc['2021-01-01','tempmin'])#单个值
print(wea.loc['2021-01-01',['tempmin','tempmax']])#series
#2、使用值列表批量查询
print(wea.loc[['2021-01-01','2021-01-02','2021-01-03'],'tempmin'])#series
print(wea.loc[['2021-01-01','2021-01-02','2021-01-03'],['tempmin','tempmax']])#dataframe
#3、使用数值区间进行范围查询
print(wea.loc['2021-01-01':'2021-01-03','tempmin'])
print(wea.loc['2021-01-01':'2021-01-03','tempmin':'dire'])
#4、使用条件表达式进行查询
print(wea.loc[wea['tempmin']<20,:])
print("---!---")
wea = wea.reset_index(drop=False)#恢复了
print(wea)
print("---~---")
def query_condition(wea):
    list1=wea['dire'].tolist()
    list2=[]
    for i in list1:
        list3=i.split('.')
        if(len(list3)!=4):
            list2.append(False)
            continue
        a=0
        for j in list3:
            if j.isdigit()==True:
                if int(j) >= 0 and int(j) <= 255:
                    a=a+1
            elif a==3:
                list4=j.split(':')
                if len(list4)!=2:
                    break
                if list4[1].isdigit()==True:
                    if int(list4[1])>=0 and int(list4[1])<=65535:
                        a=a+1;
        list2.append(a==4)
    return list2
print(wea.loc[query_condition,:])
Pandas数据插入
#1、直接赋值的方法 行/列
wea.loc[:,"wencha"]=wea['tempmax']-wea['tempmin']#两个series数据类型的相减
print(wea)
#2、.apply方法 axis=0 index 行;axis=1 column 列
def gettype(x):
    if x['tempmax']>33:
        return 'high temp'
    if x['tempmin']<-10:
        return 'low temp'
    return 'regular'
wea.loc[:,"type"]=wea.apply(gettype,axis=1)
print(wea)
print(wea['type'].value_counts())#统计每个类型的个数
#3、.assign 返回值是一个新的对象
print(wea.assign(
    #添加计算华氏温度
    hstempmin=lambda x: x['tempmin']*9/5+32,
    hstempmax=lambda x: x['tempmax']*9/5+32
))
#4、按条件选择分组分别赋值
wea['wenchatype']=''#语法-广播 给一个series赋值为单个值 就是这一行/列都是
wea.loc[wea['tempmax']-wea['tempmin']>10,'wenchatype']="温差大"
wea.loc[wea['tempmax']-wea['tempmin']<=10,'wenchatype']="温差小"
print(wea)
print(wea['wenchatype'].value_counts())#统计每个类型的个数


Pandas数据统计函数

#1、汇总类统计
print(wea.describe())#所有数字列的统计信息综合
#数据个数 平均值 标准差 最小值
print(wea['tempmax'].mean())#查看汇总表中的一项
#2、唯一去重和按值计数
print(wea['type'].unique())#枚举列有哪些数值
print(wea['wenchatype'].value_counts())#统计每个类型的个数
Pandas对缺失值的处理(略)

Pandas的SettingWithCopy报警(略) Pandas数据排序

#Series的排序
print(wea['air'].sort_values(ascending=True,inplace=False))#返回的是带着索引的某一列排序
#DataFrame的排序
print(wea.sort_values(by='air',ascending=True,inplace=False))
print(wea.sort_values(by=['air','tempmax'],ascending=[True,False],inplace=False))

Pandas字符串处理


参考链接:https://pandas.pydata.org/pandas-docs/stable/reference/series.html#string-handling

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/961197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号