pandas 作图 统计_Pandas 详细笔记

本文详细介绍了Pandas库在数据处理中的各种操作,包括读取CSV文件、数据基本信息查看、数据切片、数值计算、数据筛选、聚合操作、数据透视表等,并演示了如何使用Pandas进行数据可视化,如绘制曲线图、柱状图和散点图。
摘要由CSDN通过智能技术生成

Pandas的概述

Pandas是python第三方库,提供高性能易用数据类型和分析工具

Pandas的基本操作

引入Pandas

import pandas as pd

读取cvs文件数据及相关操作

读取文件

values = pd.read_csv("file/test.csv")

获取多少行数据,默认是5行,可输入整数参数

values.head()

数据的基本信息,包括数据类型,有效数据数量等等

values.info()

--------- 输出 ---------

RangeIndex: 891 entries, 0 to 890

Data columns (total 12 columns):

PassengerId 891 non-null int64

Age 714 non-null float64

Cabin 204 non-null object

dtypes: float64(1), int64(1), object(1)

memory usage: 83.6+ KB

获取所有的列名称

values.keys()

--------- 输出 ---------

Index(['PassengerId', 'Age', 'Cabin'], dtype='object')

获取每一列都是什么类型,以及总的数据类型

values.dtype()

--------- 输出 ---------

PassengerId int64

Age float64

Cabin object

dtype: object

获取所有的数据,不包含列名称

values.values

获取所有数据的索引值

values.index

--------- 输出 ---------

RangeIndex(start=0, stop=891, step=1)

创建一个pandas中的DataFrame数据类型的数据及基本操作

创建数据

data = {

"country": [

"aaa", "bbb", "ccc"

],

"population": [

10, 20, 30

]

}

pd.DataFrame(data)

使用已有的列数据设置索引

data.set_index("country")

获取一整列数据

data["country"]

数据切片,和list的切片基本上一致

data["country"][:2]

数值简单计算

data["population"]["aaa"] + data["population"]["bbb"] # 元素之间的互相计算

data["population"].mean() # 计算列平均值

data["population"].mean(axis=1) # 计算行平均值

data["population"].max() 获取列最大值

data["population"].max(axis=1) # 获取行最大值

data["population"].min() # 获取列最小值

data["population"].mean(axis=1) # 获取行最小值

可以得到数据的基本统计特性

values.describe()

Pandas 索引操作

获取多个列数据

df = pd.read_csv("./file/titanic.csv")

df[["Age", "Fare"]].head()

获取数据两个方法 loc 和 iloc

loc 用lable定位数据

iloc 用position定位数据

loc获取一组数据

df.loc["Bob"]

iloc获取一组数据

# 获取1~5行的1~25列数据

df.iloc[0: 5, 1: 25]

数据判断

# 获取出年龄大于40的数据中的前5行

df[df["Age"] > 40].head()

判断值是否存在

s = pd.Series(np.arange(5), index=np.arange(5)[::-1], dtype="int64")

s.isin([1, 2, 3])

--------- 输出 ---------

3 1

2 2

1 3

dtype: int64

双重索引

s2 = pd.Series(np.arange(6), index=pd.MultiIndex.from_product([[0, 1], ["a", "b", "c"]]))

--------- 输出 ---------

0 a 0

b 1

c 2

1 a 3

b 4

c 5

dtype: int64

通过多重索引获取对应的值

s2.iloc[s2.index.isin([(1, "a"), (0, "b")])]

--------- 输出 ---------

1 a 3

dtype: int64

数据筛选

df.where(df > 0, -df)

# 筛选数据,当前数据中大于0的获取出来,默认会将小于0的数据修改成NaN,-df 则表示取反值

列之间的数据判断

df.query("(a < b) & (b < c)")

groupb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值