Pandas学习之路【2】

发布时间 2023-12-02 20:53:02作者: 映辉

Pandas数据查询的5种方法:

数据准备:

import pandas as pd
path = 'C:\\Users\\zhang\\Desktop\\ant-learn-pandas-master\\datas\\beijing_tianqi\\beijing_tianqi_2018.csv'

  

df = pd.read_csv(path)

df.head()

 

# 默认的行索引为0,1,2...数字,但是此时我想把ymd这一行设置为索引
df.set_index('ymd', inplace=True)

df.head()

 

# 替换掉温度的后缀 ℃
df.loc[:, 'bWendu'] = df['bWendu'].astype('str').str.replace('℃', '').astype('int32')
df.loc[:, 'yWendu'] = df['yWendu'].astype('str').str.replace('℃', '').astype('int32')

df.head()

  

 

Pandas查询数据:

 

【方法1:使用单个标签值进行查询】

# 得到单个值
df.loc['2018-01-02','bWendu']

  

【方法2:使用标签值列表批量查询】

df.loc['2018-01-02',['bWendu','yWendu']]


df.loc[['2018-01-02', '2018-01-04', '2018-01-05'], 'bWendu']


df.loc[['2018-01-02', '2018-01-04', '2018-01-05'], ['bWendu','yWendu']]

  

【方法3:使用区间范围进行查询】

# 行index区间
df.loc['2018-01-02':'2018-01-05', 'bWendu']


# 列index区间
df.loc['2018-01-02', 'bWendu':'yWendu']


# 行和列区间
df.loc['2018-01-02':'2018-01-05', 'bWendu':'yWendu']

  

【方法4:使用条件表达式查询】

# 最低温度小于-10度, 列取全部
df.loc[df['yWendu']<-10, :]
# 查询最高温度小于30,并且最低温度大于15,并且是晴天,并且天气为优的
df.loc[(df['bWendu']<30) & (df['yWendu']>15) & (df['tianqi']=='晴') & (df['aqiLevel']==1), :]

  

【方法5:调用函数查询】

 

df.loc[lambda df: (df['bWendu']<30) & (df['yWendu']>15), :]