赞
踩
目录
6.reset_index 和 set_index (添加列名)
3. 序列:arange , linspace , random
8. argsort (返回从小到大的排列在数组中的索引位置)
1,1 判断是否为空,缺失则返回True,否则为false
1.2 isnull().sum() : 返回缺失值数量
1.3 isnull().any() : 判断所有缺失值
2.1 返回处理后的行数与列数,以元组形式(x,y)
lg: df['xx'].shape[0] 返回xx字段的行数
3.1按照字段进行分组
例:df.groupby('xx')['yy'].sum() 对xx字段进行分组,然后按照yy进行求和
常搭配使用的api有:
count() => 计数
size() => 频率统计
mean() =>平均值
median() =>中位数
std()/var() => 标准差/方差
min()/max() =>最小值/最大值
sum() =>求和
4.1 unique: 计算计算去重后的值
4.2 nunique : 计算统计去重后的值的数量
idxmax: 获取最大值的键
argmax: 获取最大值的下标
本质:一般是配合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('自定义列名')
主要是对groupby分组后对列进行的排序
主要参数:
by: 要排序的名称或名称列表(也可以按照索引或者列名)
例子:
单列排序可以写成:
data=df.groupby('xx')['yy'].reset_index()
data.sort_values(by='列名'])
多列排序: data.sort_values(by=['列名1','列名2'])
ascending: 排序类型,默认为True,则为升序,false为降序
inplace:排序后是否替换原来数据,默认为False ,则不替换
作用:
用来统计列中不同值的个数
value_counts(values,sort=True, ascending=False, normalize=False,bins=None,dropna=True)
参数:
sort=True: 是否要进行排序 。默认进行排序
ascending=False: 设置排序, 默认降序排列;
normalize=False: 是否要对计算结果进行标准化并显示标准化后的结果,默认是False
dropna=True: 是否删除缺失值nan,默认删除
作用 :
对列进行one-hot编码处理
pd.get_dummies(data,columns=['columns_name'],prefix_sep='_',dummy_na='')
参数解释:
data:数据集
columns : 需要进行one-hot处理的列
prefix_sep : 为列名前添加连接符,默认为none
dummy_na: 是否为空值新建一列,默认为false
作用:
指定按照区间分成几块区间,并且可以为每个区间添加标签
pandas.cut(x, bins, right=True, labels=None, retbins=False, precision=3, include_lowest=False, duplicates='raise', ordered=True)
x : 数据源
bins : 分类区间
labels : 返回对应的分类标签
作用 :
替换数据
dataframe.replace(to_replace=None, value=NoDefault.no_default, inplace=False)
to_replace : 被替换的数据
value : 需要替换的数据 (同时替换多个数据值可以写成df.replace({'yes':1,'no':0}))
inplace : 是否在原数据上进行修改
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
pd.to_numeric(data)
作用:
将其他类型的数据转换成int或者float数据
作用:合并两个数据集
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
```
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
`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)

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主要是对数组数据更好的处理,其中里面的所有数据类型必须一致
引入numpy
import numpy as np
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
强制将数据类型转换
例:a = a.astype(long)
- 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位随机数
- #数组属性
- print(a.dtype) #查看数组中的数据类型
- print(a.shape) #返回以(x,y)的元组,x代表行,y代表列
- print(a.size) #查看数目
- print(a.ndim) #查看维度
- # a=[1,2,3,4]
- print(a[1]) #索引取值
- print(a[1:3]) #切片
- # where 返回一个元组,满足条件的下标
- print(np.where(a > 3))
- print(a[a>3]) #相当于 =》 print(a[np.where(a>3)])
- # # 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())
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。