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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值