关于Pandas及Numpy常用api

目录

.pandas常用api

1.isnull()(空数)

 2.shape() (列,行数)

3.groupby ()(分组)

 4.unique 和 nunique (统计)

5. idxmax 和 argmax 

6.reset_index 和 set_index (添加列名)

 7.sort_values (分组后排序)

8.value_counts() (统计不同值个数)

9.get_dummies (one-hot)

10. cut  (分组打标签)

11. replace (替换)

12 .loc (行:列)

13.pd.to_numeric

 作用:

14. merge (合并数据集)

 15.pivot_table (数据透视表)

16.drop_duplicates (去重)

17.describe  (统计摘要函数)

二.Numpy 常用api

1.传入数据

 2.astype()

强制将数据类型转换

 3. 序列:arange , linspace , random

4.数组属性

5.切片与索引

6.where 和 >

7.sort(默认从小到大排序)

8. argsort (返回从小到大的排列在数组中的索引位置)


一.pandas常用api

1.isnull()(空数)

1,1 判断是否为空,缺失则返回True,否则为false

1.2 isnull().sum() : 返回缺失值数量

1.3 isnull().any() : 判断所有缺失值

 2.shape() (列,行数)

2.1 返回处理后的行数与列数,以元组形式(x,y)

lg: df['xx'].shape[0]    返回xx字段的行数

3.groupby ()(分组)

3.1按照字段进行分组

例:df.groupby('xx')['yy'].sum()      对xx字段进行分组,然后按照yy进行求和

常搭配使用的api有:

count()   => 计数

size()        => 频率统计

mean()         =>平均值

median()         =>中位数

std()/var()         => 标准差/方差

min()/max()         =>最小值/最大值

sum()                 =>求和

 4.unique 和 nunique (统计)

4.1  unique:    计算计算去重后的值

4.2  nunique :  计算统计去重后的值的数量

5. idxmax 和 argmax 

 idxmax:  获取最大值的键

 argmax:   获取最大值的下标

6.reset_index 和 set_index (添加列名)

本质:一般是配合groupby分组后为没有列名的列添加列名,默认是原先列名作为新列名使用,或者自定义列名

作用:

1.如果在不指定任何参数的情况下使用reset_index(),则序列号将成为新索引,而原始索引将保留为新列,说白了就是将原来的列名作为新的列名使用

例子:

data=df.groupby('xx')['yy'].reset_index()       => 分组后将原来列名作为新列名使用

2.如果要为列设置新列名则许需要使用set_index("new列名"),但是它是基于reset_index()使用的

例子:

data=df.groupby('xx')['yy'].reset_index().set_index('自定义列名')

 7.sort_values (分组后排序)

主要是对groupby分组后对列进行的排序

主要参数:

by: 要排序的名称或名称列表(也可以按照索引或者列名)

例子:

单列排序可以写成:

                      data=df.groupby('xx')['yy'].reset_index()

                      data.sort_values(by='列名'])

多列排序:    data.sort_values(by=['列名1','列名2'])


ascending: 排序类型,默认为True,则为升序,false为降序


inplace:排序后是否替换原来数据,默认为False ,则不替换
 

8.value_counts() (统计不同值个数)

作用:
用来统计列中不同值的个数

value_counts(values,sort=True, ascending=False, normalize=False,bins=None,dropna=True)

参数:

sort=True:                 是否要进行排序  。默认进行排序
ascending=False:     设置排序, 默认降序排列;
normalize=False:      是否要对计算结果进行标准化并显示标准化后的结果,默认是False
dropna=True:            是否删除缺失值nan,默认删除

9.get_dummies (one-hot)

作用 :

对列进行one-hot编码处理

pd.get_dummies(data,columns=['columns_name'],prefix_sep='_',dummy_na='')

参数解释:

data:数据集

columns : 需要进行one-hot处理的列

prefix_sep : 为列名前添加连接符,默认为none

dummy_na: 是否为空值新建一列,默认为false 

10. cut  (分组打标签)

作用:

指定按照区间分成几块区间,并且可以为每个区间添加标签

pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise', ordered=True)

x : 数据源

bins :  分类区间

labels : 返回对应的分类标签 

11. replace (替换)

作用 :

替换数据

dataframe.replace(to_replace=None, value=NoDefault.no_default, inplace=False)

to_replace : 被替换的数据

value          : 需要替换的数据  (同时替换多个数据值可以写成df.replace({'yes':1,'no':0}))

inplace       : 是否在原数据上进行修改

12 .loc (行:列)

df.loc['行','列']

作用:可以对制定行,列进行查找与筛选,更多是数据清洗

df.loc[:, "x"]         : Smoking列的所有数据
df.loc[:, ["x",'y']]    :选取两列的数据
df.loc[1:5, ["x",'y']]  :#指定行的两列数据 

df.loc[df['z']>1,'y']=10  对y列中大于1的行赋值为10

13.pd.to_numeric

pd.to_numeric(data)

 作用:

 将其他类型的数据转换成int或者float数据

14. merge (合并数据集)

作用:合并两个数据集

merge函数的基本语法如下:

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)


参数说明:
- `left`和`right`:合并的两个数据集(左连接and右连接)。
- `how`:指定合并的方式,默认为'inner',表示取两个数据集的交集。其他可选值有'outer'、'left'和'right'。
- `on`、`left_on`和`right_on`:指定合并的列名,如果两个数据集中的列名不同,可以使用这些参数分别指定左右数据集的列名。
- `left_index`和`right_index`:布尔值,表示是否使用索引作为合并的键。
- `sort`:布尔值,表示是否按照合并键进行排序。

下面是一个示例,演示如何使用merge函数合并两个数据集:

import pandas as pd

# 创建示例数据集
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
                    'value1': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
                    'value2': [5, 6, 7, 8]})

# 使用merge函数合并数据集
merged_df = pd.merge(df1, df2, on='key', how='inner')

print(merged_df)

输出结果如下:
```
  key  value1  value2
0   B       2       5
1   D       4       6
```

 15.pivot_table (数据透视表)

pandas的pivot_table函数是用于创建数据透视表的工具。它可以帮助我们以一种灵活的方式对数据进行重塑和汇总。

使用pivot_table函数,我们可以将一个DataFrame对象按照指定的行和列分组,并对指定的数值进行聚合操作。pivot_table函数的一般语法如下:

pandas.pivot_table(data, values=None, index=None, columns=None, aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')

参数说明:
- data:要进行重塑的DataFrame对象。
- values:要聚合的数值列。
- index:用于分组的行标签列。
- columns:用于分组的列标签列。
- aggfunc:聚合函数,可以是'mean', 'sum', 'count', 'min', 'max'等,默认为'mean'。
- fill_value:用于替换缺失值的值。
- margins:是否添加汇总行和列,默认为False。
- dropna:是否删除包含缺失值的行和列,默认为True。
- margins_name:汇总行和列的标签名称,默认为'All'。

import pandas as pd

# 创建示例数据
data = pd.DataFrame({
    'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
    'Value1': [1, 2, 3, 4, 5, 6],
    'Value2': [7, 8, 9, 10, 11, 12]
})

# 以Category列为行标签,Value1列为数值列进行聚合操作
pivot_table = pd.pivot_table(data, values='Value1', index='Category', aggfunc='mean')

print(pivot_table)

输出结果为:
          Value1
Category        
A            1.5
B            3.5
C            5.5

16.drop_duplicates (去重)

`drop_duplicates()` 是 pandas 中的一个函数,用于删除 DataFrame 或 Series 中的重复行。

函数的语法如下:

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

参数说明:
- `subset`:可选参数,用于指定要考虑的列名或列名列表。默认值为 None,表示考虑所有列。
- `keep`:可选参数,用于指定保留重复项的方式。可选值包括:
  - `'first'`:保留第一个出现的重复项;
  - `'last'`:保留最后一个出现的重复项;
  - `False`:删除所有重复项。
- `inplace`:可选参数,是否在原始 DataFrame 上进行修改。默认值为 False,表示返回一个新的 DataFrame。

使用示例:```python

import pandas as pd

# 创建一个包含重复行的 DataFrame
df = pd.DataFrame({'A': [1, 2, 2, 3, 4, 4], 'B': ['a', 'b', 'b', 'c', 'd', 'd']})
print(df)

# 删除重复行,默认保留第一次出现的重复项
df_drop_duplicates = df.drop_duplicates()
print(df_drop_duplicates)

# 删除重复行,保留最后一次出现的重复项
df_drop_duplicates_last = df.drop_duplicates(keep='last')
print(df_drop_duplicates_last)

# 删除重复行,删除所有重复项
df_drop_all_duplicates = df.drop_duplicates(keep=False)
print(df_drop_all_duplicates)

# 在原始 DataFrame 上进行修改
df.drop_duplicates(inplace=True)
print(df)

17.describe  (统计摘要函数)

pandas中的describe()函数是一个用于生成数据集的统计摘要的非常有用的函数。
它提供了关于数据集的统计信息,如计数、均值、标准差、最小值、25%分位数、中位数、75%分位数和最大值。

import pandas as pd

# 创建一个示例数据集
data = {'A': [1, 2, 3, 4, 5],
        'B': [10, 20, 30, 40, 50],
        'C': [100, 200, 300, 400, 500]}

df = pd.DataFrame(data)

# 使用describe()函数生成统计摘要
summary = df.describe()

print(summary)

运行以上代码,你将会得到以下输出:

```
              A          B          C
count  5.000000   5.000000    5.00000
mean   3.000000  30.000000  300.00000
std    1.581139  15.811388  158.11388
min    1.000000  10.000000  100.00000
25%    2.000000  20.000000  200.00000
50%    3.000000  30.000000  300.00000
75%    4.000000  40.000000  400.00000
max    5.000000  50.000000  500.00000
```

你可以看到,describe()函数生成了数据集的统计摘要,包括计数、均值、标准差、最小值、25%分位数、中位数、75%分位数和最大值。

除了使用默认的统计摘要,你也可以通过传递参数来自定义describe()函数的行为。例如,你可以通过设置include参数为'object'来获取字符串类型的统计信息。

```python
summary = df.describe(include='object')
```

总而言之,pandas的describe()函数是一个非常方便的工具,可以帮助你快速了解数据集的统计特征。无论是在数据探索阶段还是在数据预处理阶段,它都是一个非常有用的函数。

 水平分割线


二.Numpy 常用api

numpy主要是对数组数据更好的处理,其中里面的所有数据类型必须一致

引入numpy

import numpy as np

1.传入数据

1.1 传入列表数据 : np.array([a,b,c])

1.2  生成全是0的数组 : np.zeros(5,dtype='int')    生成5个,却类型改为int

1.3  生成全是1的数组 : np.ones(5,dtype='int')    生成5个,却类型改为int

1.4  fill : a.fill(5)         :   将里面的数据全部改为5

 2.astype()

强制将数据类型转换

例:a = a.astype(long)

 3. 序列:arange , linspace , random

a = np.arange(1,10,2)   #整数序列,从1开始,间隔为2,终点为10
a=np.linspace(1,10,4)    #等差数列,从1开始,10个数,等差值为4
a= np.random.randint(1,10,5)  #获取1到10的5位随机数

4.数组属性

#数组属性
print(a.dtype)   #查看数组中的数据类型
print(a.shape)   #返回以(x,y)的元组,x代表行,y代表列
print(a.size)    #查看数目
print(a.ndim)    #查看维度

5.切片与索引

# a=[1,2,3,4]
print(a[1])    #索引取值
print(a[1:3])   #切片

6.where 和 >

# where  返回一个元组,满足条件的下标
print(np.where(a > 3))
print(a[a>3])   #相当于  =》 print(a[np.where(a>3)])

7.sort(默认从小到大排序)

8. argsort (返回从小到大的排列在数组中的索引位置)

# # a=[1,2,3,4]
b=np.argsort(a)  #返回从小到大的索引位置
print(a[b[-1]])  #从而获取到他的最大值 

9. 求和、最大值、最小值、平均值

# 求和
print(np.sum(a))
print(a.sum())
#  求最大值
print(np.max(a))
print(a.max())

#求最小值
print(np.min(a))
print(a.min())

# 求均值
print(np.mean(a))
print(a.mean())

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小辉懂编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值