Python学习笔记——Pandas

目录

数据读取与存储

读取.csv 文件

存储.csv 文件

读取excel文件

存储excel文件

数据引用

选择行

同时选择行与列

数据清理

判断是否有缺失值 .isna()

删除缺失值 .dropna()

判断离群点

箱型图

数据集合并

横向合并 .merge()

纵向合并 pd.concat()

数据聚集

分组——groupby函数

聚合计算

apply函数

agg函数


数据读取与存储

读取.csv 文件

df = pd.read_csv('path_to_file.csv')

存储.csv 文件

df.to_csv('path_to_file.csv', index=True)

读取excel文件

df = pd.read_excel('path_to_file.xls', sheet_name='Sheet1',engine=None) 

存储excel文件

df.to_excel('path_to_file.xlsx', sheet_name='Sheet1') 

数据引用

选择行

df.loc[label] #用标签选择行

label可填:

单个标签,例如 ['a' ](自定义标签), 1 (默认标签),返回a行( Series 类型)

标签列表,例如 ['a','b','c'] ,返回 a,b,c行(DataFrame 类型)

标签切片,例如[ 'a':'c'] ,返回a行-c行( DataFrame 类型)

df.iloc[rowNum] #用位置选择行

rowNum(row number)可填:

单个整数,如[1],返回的是第2行( Series 类型)

整数列表,如[[0,2]],返回的是第1行和第3行(DataFrame 类型)

整数切片,例如[1:7] ,返回的是第2行至第8行

df.iloc[:] 表示选择所有行,返回的是 DataFrame 类型

同时选择行与列

df.loc[行标签,列名]

dfcaridx.loc['beta':'delta',['two','flag']]

df.iloc[行位置,列位置]

dfcar.iloc[1:3,[0,1]] # 切片与列表搭配选择DataFrame

数据清理

判断是否有缺失值 .isna()

df.isna()

典例:选择accept DataFrame中所有至少包含一个NaN值的行,并返回这些行的所有列

accept.loc[accept.isna().sum(axis=1)>0,:]

删除缺失值 .dropna()

DataFrame.dropna(axis=0, how='any', inplace=False)#dropna函数即删除缺失值

axis=0 #沿着行的方向进行操作

axis=1 #沿着列的方向进行操作

how='any' #只要包含缺失值,就删除相应的行或列,默认any

how='all' #只有当某行(列)所有值都是缺失值的时候,才删除该行(列)

判断离群点

箱型图

_ = df['列名'.plot(kind='box',figsize=(长度,高度),subplot=True)]

subplots=True: 这个参数指示 matplotlib 创建一个子图(subplot)网格,如果设置为 True,则每个选定的列都会在一个单独的子图上绘制箱形图。

数据集合并

横向合并 .merge()

df_left.merge(df_right, how='inner', left_index=False, right_index=False)

how='inner' #连接左右两个 DataFrame 的 index 中共同出现的行

how='outer' #连接左右两个 DataFrame 的所有 index

how='inner' #连接左右两个 DataFrame 的 index 中共同出现的行

  • left_index:布尔值,默认为False。如果设置为True,左DataFrame的索引将被用作合并键。这意味着左DataFrame的索引必须与右DataFrame的某个键匹配。

  • right_index:布尔值,默认为False。如果设置为True,右DataFrame的索引将被用作合并键。这意味着右DataFrame的索引必须与左DataFrame的某个键匹配。

        当使用left_index=Trueright_index=True时,两个DataFrame的索引将直接匹配,而不需要额外的键列。这通常用于两个DataFrame的索引已经完全匹配的情况。

纵向合并 pd.concat()

把多个具有相同列名的 DataFrame 按列衔接起来

pd.concat([df_1,df_2], axis=0, join='outer',ignore_index=False)

join :连接方式,可选值'inner'或者'outer' ,‘outer’ 表示连接两个 DataFrame 的外侧,保留所有原始索引。 ‘inner’ 表示只连接两个 DataFrame 的交集部分。

数据聚集

分组——groupby函数

df.groupby(by='列名/字典的键', axis=0, sort=True)

聚合计算

apply函数

df.apply('count/sum/mean/median/max/min',axis=0)

这串代码表示对数据集df沿着行的方向输出每行总和/平均值...

agg函数

df.groupby().agg('count/sum/mean/median/max/min')

eg:
df.groupby('key1').agg(['mean','std']) #只按照'key1'列的值进行分组后计算每列的平均值和标准差
df.groupby(['key1','key2'...]).agg({'data1': ['mean'], 'data2': ['std']})#按照‘key1’列、‘key2’列等列分组后对’data1‘列、‘data2’列分别计算平均值、标准差
  • agg函数是apply函数的一个别名,通常用于DataFrame对象。
  • 它接受一个字典,字典的键是列名,值是对应的函数或函数列表。
  • agg函数会对每个应用指定的函数或函数列表,并返回一个包含结果的新DataFrame。

Sec1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值