pandas——数据查询与排序

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • pandas是什么?
    • 1.查询数据
        • 1.1 .loc方法
        • 1.2 .where方法
        • 1.3 .query方法
    • 2.数据扩充
    • 3.数据排序
        • 3.1 Series排序
        • 3.2 DataFrame排序
    • 4.字符串处理



pandas是什么?

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Numpy主要用于数值计算,Pandas主要用于数据的读取和查询。

pandas——数据查询与排序_第1张图片
本次所用数据如上图所示,名次为int型,日期为int型,默认索引从0开始。总计550条数据



1.查询数据

1.1 .loc方法

该方法既能查询又能覆盖写入,强烈推荐!!! 下面介绍用该方法查询数据的几种方法

  1. 使用单个label值查询数据 行或者列都可以只插入单个值
print(df.loc[1, '电影名称'])             # 得到一个值
print(df.loc[1, ['电影名称', '人次']])    # 得到一个Series
print(df.loc[:, '电影名称'])             # 得到一整列
print(df.loc[0])                        # 得到一整行
  1. 使用值列表批量查询
print(df.loc[[1, 4, 8], ['电影名称', '人次']])  #行标签和列标签均为一个列表

pandas——数据查询与排序_第2张图片

  1. 使用数值区间进行范围查询 该区间是前后都闭合的区间
print(df.loc[2:7, '电影名称':'总场次'])

pandas——数据查询与排序_第3张图片

  1. 使用条件表达式进行条件查询
# 返回的数据要符合:日期>20190214  总场次>90000  票价>38.7
print(df.loc[(df['日期'] > 20190214) & (df['总场次'] > 90000) & (df['票价'] > 38.7)])

在这里插入图片描述

  1. 调用函数查询
def query_row(df):
    return (df['总场次'] > 95000) & (df['票价'] > 38.7)

print(df.loc[query_row, :])   # 定义一个条件筛选函数,直接传入loc方法

在这里插入图片描述

1.2 .where方法

1.3 .query方法


2.数据扩充

  1. 直接赋值
df.loc[:, '新列'] = df['总场次'] - df['票价']
print(df.head(5))    

pandas——数据查询与排序_第4张图片

  1. .apply方法
  2. .assign方法
  3. 按条件选择分组分别赋值

3.数据排序

3.1 Series排序

pandas——数据查询与排序_第5张图片

df['票价'].sort_values()                  #升序排序   返回值为一个Series
df['票价'].sort_values(ascending=False)  # 降序排序   返回值为一个Series

3.2 DataFrame排序

pandas——数据查询与排序_第6张图片

# 多列排序
df.sort_values(by=['总场次', '票价'])
df.sort_values(by=['总场次', '票价'], ascending=False)  # 两个字段都是降序
df.sort_values(by=['总场次', '票价'], ascending=[True, False])  # 一个字段升序,一个字段降序

4.字符串处理

pandas——数据查询与排序_第7张图片
获取表格数据中的某一列后,其类型是Series,要先获取Series的str属性才能进行字符串操作。

你可能感兴趣的:(数据分析,python,数据分析)