Python pandas DateFrame查询数据df.loc的5种方法
Posted 皓月盈江
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python pandas DateFrame查询数据df.loc的5种方法相关的知识,希望对你有一定的参考价值。
# _*_coding:utf-8_*_
import pandas as pd
# 自定义函数
def func(df):
return df['temperature'] < 32
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
data = 'date': ['2022-08-21', '2022-08-22', '2022-08-23'],
'weather': ["晴", "阴", "晴"],
'temperature': ["30℃", "20℃", "32℃"]
df = pd.DataFrame(data)
print(df)
# 1.使用单个标签值查询
# 查询出"日期"列的数据
print(df["date"])
# 2.使用标签值列表查询
# 查询出"日期"和"温度"列的数据
print(df[['date', 'weather']])
# 3.使用数值区间查询
# 查询出一行数据
print(df.loc[1])
# 查询出多行数据(包含末尾元素,和切片不同)
print(df.loc[1:2])
# ----------------------------------------------------
# 设置索引为日期,方便按日期筛选
df.set_index('date', inplace=True)
print(df)
# 1.使用单个标签值查询
print(df.loc['2022-08-21', 'temperature'])
# 2.使用值列表查询
print(df.loc[['2022-08-21', '2022-08-22'], 'weather'])
# 3.使用数值区间查询
df.loc[:, 'temperature'] = df['temperature'].str.replace('℃', '').astype(int)
print(df.loc[:, 'weather':'temperature'])
# 4.使用条件表达式查询(bool列表的长度得等于行数或者列数)
print(df.loc[df['temperature'] >= 30, :])
# 5.使用函数查询
# 直接使用lambda表达式
print(df.loc[lambda df1: (df1['temperature'] >= 30) & (df1['temperature'] < 32), :])
# 自定义函数
print(df.loc[func, :])
以上是关于Python pandas DateFrame查询数据df.loc的5种方法的主要内容,如果未能解决你的问题,请参考以下文章