python pd Series 添加行_Python数据分析核心包:Pandas介绍

2cc1a490f86700c013f840209a1e6e3f.png

一、介绍

  1. pandas 是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

2. pandas中提供了两种常见的数据类型:

  • 一维 Series
  • 二维 DataFrame

二、使用及安装方式

安装

# 方法一:

导入,pandas习惯被简写成pd

import pandas as pd

三、Series类型

Series类型类似于Numpy的一维数组对象,可以将该类型看做是一组数据与数据相关的标签(索引)联合而构成(带有标签的一维数组对象)。

  1. 创建方式

列表

s=pd.Series([1,2,3],index=list("abc"))

字典

s=pd.Series({"a":1,"b":2,"c":3})

numpy中的ndarray数组

s=pd.Series(np.array([1,2,3]),index=list("abc"))

标量创建

s=pd.Series(1,index=list("abc"))

2. 相关属性

  • index 索引
  • values 值
  • shape 形状
  • size 元素个数
  • dtype 类型
  • head/tail 首/尾元素

3. 相关操作

  • 矢量化运算

运算符

函数add、sub、div、 mul,可以通过fill_value来对nan进行填充

s1.add(s2,fill_value=1)
  • isnull/notnull 空值判断
  • 统计函数sum、min、max、min...,series在运算nan时会忽略nan,比如求和时结果部位nan

4. 索引和切片

如果Series对象的index值为非数值类型,通过[索引]访问元素,索引既可以是标签索引,也可以是位置索引。这会在一定程度上造成混淆。我们可以通过:

  • loc 仅通过标签索引访问,包左包右。
  • iloc 仅通过位置索引访问,包左不包右。

这样,就可以更加具有针对性去访问元素。

也可以通过布尔值数组作为索引。

5. CURD

  • 获取和修改 loc、iloc
  • 追加

方法一:loc[索引]=值

方法二:

reindex(新索引,method='填充方式',limit=填充次数)

  • 删除 drop('索引',inplace=TrueFalse)

四、DataFrame类型

DataFrame是一个多维数据类型。因为通常使用二维数据,因此,我们可以将DataFrame理解成类似excel的表格型数据,由多列组成,每个列的类型可以不同。

因为DataFrame是多维数据类型,因此,DataFrame既有行索引,也有列索引。

  1. 创建方式
  • 数组
df=pd.DataFrame([[1,2,3],[4,5,6]],index=["A","B"],columes=["a","b","c"])
  • 字典
pd

2. 相关属性

  • index行索引
  • columns 列索引
  • values 值
  • shape 形状
  • ndim 维度
  • dtypes 类型

3. 相关操作

  • 列操作

获取列

df[列索引]
df.列索引

增加修改列

df[列索引]=列数据

删除列

del df[列索引]

# pop 删除指定索引的元素,返回被删除的元素,只能删除一列
df.pop(列索引)

# axis在dataframe中,不一定指定0就是垂直方向,1就是水平方向。
df.drop(列索引或数组,axis=10)
  • 行操作

获取行

df.loc[行索引]
df.iloc[行编号]
df[[布尔值]]

增加行

#追加单行
df.append(row)

#追加多行,append也可以,但是不适合
pd.concat((df1,df2),ignore_index=True)
  • 行列混合操作

切片

# 先获取行
df.loc[].loc[]

# 先获取列
df[].loc[]

# 混合切片
# 切片只能从高维切到低维。
# 所以,对于dataframe行列的混合切片,只能先切行,再切列
# (1)loc
df.loc[标签start:标签end:step,低维切片(按照标签)]  # 包含end
#  (2)iloc
df.iloc[位置start:位置end:step,低维切片(按照位置)]  # 不包含end
  • 混合运算

DataFrame的一行或一列都是Series类型的对象。因此,DataFrame可以近似看做是多行或多列Series构成的,Series对象支持的很多操作,对于DataFrame对象也同样适用,我们可以参考之前Series对象的操作。

转置:

a. DataFrame进行运算时,会根据行索引与列索引进行对齐。当索引无法匹配时,产生空值(NaN)。如果不想产生空值,可以使用DataFrame提供的运算函数来代替运算符计算,通过fill_value参数来指定填充值。

b. DataFrame与Series混合运算。【默认Series索引匹配DataFrame的列索引,然后进行行广播。可以通过DataFrame对象的运算方法的axis参数,指定匹配方式(匹配行索引还是列索引)。

df1+df2

# 【注意】填充值只能够当其中一个dataframe有效,如果两个dataframe的值都是nan
df1.add(df2,fill_value=0)
  • 行列转换
df1.T

a. 索引排序

Series与DataFrame对象可以使用sort_index方法对索引进行排序。DataFrame对象在排序时,还可以通过axis参数来指定轴(行索引还是列索引)。也可以通过ascending参数指定升序还是降序。

df.sort_index(axis=0,ascending=False)

b. 值排序

Series与DataFrame对象可以使用sort_values方法对值进行排序。

# axis
# by:按照哪个索引进行排序
#     排的是行,按照哪个列索引进行排序
#     排的是列,按照哪个行索引进行排序
# inplace
# asending :默认True 升序
df.sort_values(axis= ,by= )

c. 排名方法

#参数
# method:默认并列元素 ,显示均值
#         也可以设置max,min ,first(按照数据在原始数据中出现的顺序排名)
# s.rank(method="min")
  • 统计方法

mean / sum / count

max / min

cumsum / cumprod 累加/累乘

idxmax / idxmin

var / std 方差/标准差

corr / cov 相关系数/协方差

  • 其他

unique

unique 只能去除重复元素,不能排序(ndarray数组是可以排序的)

value_counts

value_counts返回series中每个值出现的次数,默认按照降序排列

isin

isin 可以使用与serise,也可以适用于dataframe,判断参数是否存在于pandas对象中;
也可以判断原元素的交集 True的是交集的部分。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值