百日筑基篇——Pandas学习一(pyhton入门六)

百日筑基篇——Pandas学习(pyhton入门六)


前言

随着python的学习,在数据分析方面,pandas库的学习是必不可少的,本文记录了学习pandas时的笔记,用来巩固所学,方便随时查阅。


一、pandas是什么?

pandas 是一个基于 Python 语言的数据分析库,提供了丰富的数据结构和功能,用于简化数据分析任务。经常与numpy、matplotlib以及sklearn等库一起使用。

二、数据读取

import pandas as pd
#读取excel文件
pd.read_excel(file_path)

#读取csv,txt.tsv文件
pd.read_csv(file_path,sep="\t",header=  , names=  )

#读取MySQL数据库
import pymysql
conn = pymysql.connect(host=" ", user=" ", password=" ", database="", charset="")
mysql_wht = pd.read_sql("sql语句", con=conn)


#查看读取数据的信息
df = pd.read_excel(文件路径)
print(df.shape) 	#看行、列数
print(df.columns)	#看列名
print(df.index)		#看索引列
print(df.dtypes)	#看每列的数据类型
print(df.head())	#看前几行数据

三、数据结构

Pandas中的主要数据结构有两种:Series(一维序列,表示一行或一列)和DataFrame(二维数据,表示数据框)

1. Series

import pandas as pd
import numpy as np

# 创建一个Series对象
w = pd.Series([1, 3, 5, np.nan, 6, 8])
print(w)
h = pd.Series({"w": 22, "h": 33, "t": 99})
print(h)
#结果
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64
w    22
h    33
t    99
dtype: int64

2. DataFrame

#创建一个数据框
datas = {
    "ymd": ["2024-01-01", '2024-01-02', "2024-01-03", "2024-01-04"],
    "bwendu": ["3℃", "2℃", "2℃", "0℃"],
    "ywendu": [-6, -5, -5, -8],
    "tianqi": ["晴~多云", "阴~多云", "多云", "阴"],
    "fengxiang": ["东北风", "东北风", "北风", "西北风"],
    "fengli": ["1-2级", "1-2级", "2-3级", "3-4级"],

}
df = pd.DataFrame(datas)
print(df)
#结果
          ymd bwendu  ywendu tianqi fengxiang fengli
0  2018-01-01     3-6~多云       东北风   1-21  2018-01-02     2-5~多云       东北风   1-22  2018-01-03     2-5     多云        北风   2-33  2018-01-04     0-8      阴       西北风   3-4

四、数据查询

1. 查询的结果

#只查询一列/行,返回的是Series
print(df["ymd"])
0    2024-01-01
1    2024-01-02
2    2024-01-03
3    2024-01-04
Name: ymd, dtype: object

print(df.loc[1])
ymd          2024-01-02
bwendu               2℃
ywendu               -5
tianqi             阴~多云
fengxiang           东北风
fengli             1-2级
Name: 1, dtype: object



#查询多行、多列,返回DataFrame
print(df[["ymd","fengli"]])

print(df.loc[1:3])
          ymd bwendu  ywendu tianqi fengxiang fengli
1  2024-01-02     2-5~多云       东北风   1-22  2024-01-03     2-5     多云        北风   2-33  2024-01-04     0-8      阴       西北风   3-4

2. .loc 方法查询

import pandas as pd

#设定日期为索引
df.set_index("ymd",inplace=True)
#去掉"bwendu"列的后缀℃
df.loc[:,"bwendu"] = df["bwendu"].str.replace("℃","").astype("int32")
print(df)
            bwendu  ywendu tianqi fengxiang fengli
ymd                                               
2024-01-01       3      -6~多云       东北风   1-22024-01-02       2      -5~多云       东北风   1-22024-01-03       2      -5     多云        北风   2-32024-01-04       0      -8      阴       西北风   3-4#得到单个值,确定(行,列)
print(df.loc["2024-01-03","tianqi"])
多云






#使用条件来查询
print(df.loc[df["ywendu"] < -5, :])
            bwendu  ywendu tianqi fengxiang fengli
ymd                                               
2024-01-01       3      -6~多云       东北风   1-22024-01-04       0      -8      阴       西北风   3-4#使用lambda表达式
print(df.loc[lambda df : (df["ywendu"]<-5)&(df["bwendu"]>0),: ])
ymd                                               
2024-01-01       3      -6~多云       东北风   1-2#使用自定义函数
def query_func(df):
    return df.index.str.endswith("-04")
    
print(df.loc[query_func(df),:])
            bwendu  ywendu tianqi fengxiang fengli
ymd                                               
2024-01-04       0      -8      阴       西北风   3-4

总结

本章主要简述了如何用pandas进行数据读取、在pandas中的两大数据结构(Series和DataFrame)、以及如何进行数据的查询(主要讲述了.loc方法)。

莫听穿林打叶声,何妨吟啸且徐行;

–2023-8-6 筑基篇

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星石传说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值