Pandas查询数据的四种方式以及使用df.loc查询数据的五种方法_3

本文详细介绍了Pandas库中DataFrame对象的loc属性用于数据查询的各种方法,包括根据标签值、值列表、数值区间以及条件表达式进行查询。通过实例展示了如何设置行索引、替换数据、进行单个和批量查询,以及如何利用函数进行复杂查询。同时,还提供了对特定条件数据的筛选操作,如查询特定日期范围内的数据或满足特定条件的数据行。
摘要由CSDN通过智能技术生成
import numpy as np
import pandas as pd

"""
pandas查询数据的几种方法
1.df.loc,根据行列标签值进行查询
2.df.iloc,根据行列的数字位置进行查询
3.df.where
4.df.query
*:.loc既能查询,又能覆盖写入

pandas使用df.loc查询数据的方法
1.使用单个label值进行查询
2.使用值列表进行批量查询
3.使用数值区间进行范围查询
4.使用条件表达式进行查询
5.使用函数进行查询

注意:1.以上查询方法既适用于行,也适用于列;2.注意观察降维dataframe->series->值
"""

# 读取数据
file_path_1 = "./test.csv"
df = pd.read_csv(file_path_1)
# 获取前五行数据
df_head = df.head()
# 设定行索引为日期,方便按照日期进行查询
df.set_index('ymd',inplace=True)  # 使用列名'ymd'那一列作为行索引,inplace=true说明是直接修改df,为false不会修改df,需要赋给一个新变量
# 替换掉bWendu列和yWendu列中C符号转为整数(3C->3)
df.loc[:,'bWendu'] = df['bWendu'].str.replace('C','').astype('int32')
df.loc[:,'yWendu'] = df['yWendu'].str.replace('C','').astype('int32')

# 1.使用单个label值进行查询
value_1 = df.loc['2018-01-03','bWendu'] #  查询2018-01-03的bWendu对应的值
value_2 = df.loc['2018-01-03',['bWendu','yWenddu']] #  查询2018-01-03的bWendu、yWendu对应的值

# 2.使用值列表进行批量查询
value_3 = df.loc[['2018-01-03','2018-01-20'],'bWendu'] #  查询2018-01-03、2018-01-20的bWendu对应的值
value_4 = df.loc[['2018-01-03','2018-01-20'],['bWendu','yWenddu']] #  查询2018-01-03、2018-01-20的bWendu、yWendu对应的值

# 3.使用数值区间进行范围查询
value_5 = df.loc['2018-01-01':'2018-02-01','bWendu'] # 行index范围查询
value_6 = df.loc['2018-01-01','bWendu':'yWendu'] # 列index范围查询
value_7 = df.loc['2018-01-01':'2018-02-01','bWendu':'yWendu'] # 行列都按照范围查询

# 4.使用条件表达式进行查询
value_8 = df.loc[df['bWendu']<10,:]  #  查询bWendu列小于10的所有列表
# 查询最高温度小于30,最低温度大于15,晴天,天气为优
value_9 = df.loc[(df['bWendu']<30) & (df['yWendu']>15) & (df['wheather']=='晴') & (df['aplive']=='1'),:]

# 5.调用函数进行查询
value_10 = df.loc[lambda df:(df['bWendu']<30) & (df['yWendu']>15),:]  # 这里函数是将整个dataframe传进去了
# 自定义函数(查询9月份空气质量好的数据)
def my_function(df):
    return df.index.str.startswith('2018-09') & (df['aplive'] == '1')
value_11 = df.loc[my_function,:]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值