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种方法的主要内容,如果未能解决你的问题,请参考以下文章

Python pandas DateFrame查询数据df.loc的5种方法

Python pandas DateFrame新增数据列

Python pandas DateFrame新增数据列

Python pandas DateFrame新增数据列

pandas库的DateFrame类型

Pandas中DateFrame修改列名