pandas学习日记(三)

查询数据

操纵的数据

首先在同级目录创建一个文本tq.csv
里面的内容是:

ymd,bWendu,yWendu,tianqi,fengxiang,fengji,aqi,aqiInfo,aqiLevel
20231116,15c,8c,晴,北风,3,50,良,2
20231117,18c,10c,多云,东南风,2,65,轻度污染,3
20231118,22c,15c,小雨,西风,4,80,中度污染,4
20231119,20c,12c,阴,北风,3,45,优,1
20231120,16c,9c,晴,东风,2,55,良,2
20231121,19c,11c,阴,西南风,3,60,良,2
20231122,14c,7c,小雨,北风,4,75,轻度污染,3
20231123,17c,10c,多云,东风,2,40,优,1
20231124,23c,15c,晴,西北风,3,58,良,2
20231125,21c,13c,阴,南风,2,70,轻度污染,3

对应表格是这样的
表格内容
0.引入库

import pandas as pd

1.读取数据

df = pd.read_csv("tq.csv")

2.设置索引 使用ymd作为索引

df.set_index("ymd", inplace=True)
# 查看索引
print(df.index)
# 查看整个表的前几行
print(df.head(4))

3.数据格式化 将温度的’c‘去掉并将数据改成int类型

# [:,xxx] 是xxx字段的全部行
df.loc[:, "bWendu"] = df["bWendu"].str.replace("c", "").astype("int32")
df.loc[:, "yWendu"] = df["yWendu"].str.replace("c", "").astype("int32")

4.用print(df)输出表格内容
在这里插入图片描述
5.查询

# 查询单个数据
df.loc[行索引,列字段] #或者
df.loc[行索引][列字段]
# 上面两种的逻辑不同,第一种是直接根据两个索引查找,第二个是df.loc[行索引]先返回Series对象,然后根据列索引返回
# 例如
print(df.loc[20231122]['bWendu']) # 输出14
# 二维查询
df.loc[[行索引1,行索引2,...],[列索引1,列索引2,...]]
# 会返回行列索引对应数据组成的DataFrame对象
# 例如
print(df.loc[[20231122,20231123,20231120],["yWendu","bWendu"]])
"""
输出

         yWendu bWendu
ymd                   
20231122      7     14
20231123     10     17
20231120      9     16
"""
# 区间查询
df.loc[[最小行索引:最大行索引],[最小列索引:最大列索引]]
# 返回的也是一个DataFrame
# 例如
print(df.loc[20231121:20231125, ['bWendu', 'yWendu']])
"""
输出
         bWendu yWendu
ymd                   
20231121     19     11
20231122     14      7
20231123     17     10
20231124     23     15
20231125     21     13
"""
# 条件查询
df.loc[(df['列索引']的逻辑运算1)&(df['列索引']的逻辑运算2)]
# 最大温度小于等于30 最低温度大于等于12
df,loc[(df['bWendu']<=30)&(df['yWendu']>=12)]

# 也可以传入函数
# 例如
def f(par):
	    return (df['bWendu'] <= 30) & (df['yWendu'] >= 12) & (df['tianqi'] == '晴')
print(df.loc[f(df)])
"""
输出
         bWendu yWendu tianqi fengxiang  fengji  aqi aqiInfo  aqiLevel
ymd                                                                   
20231124     23     15      晴       西北风       3   58       良         2
"""
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mystic Musings

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

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

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

打赏作者

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

抵扣说明:

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

余额充值