python中pandas库教学 函数篇(2)

python中pandas库教学 函数篇(2)

Pandas库是一种流行的Python数据处理库,它提供了很多有用的数据结构和函数,可以帮助我们处理和分析数据,接下来为大家介绍pandas库中的常用数据分析的函数

数据读取和写入

  • read_csv():从CSV文件中读取数据
  • read_excel():从Excel文件中读取数据
  • read_sql():从SQL数据库中读取数据
  • to_csv():将数据写入CSV文件
  • to_excel():将数据写入Excel文件
  • to_sql():将数据写入SQL数据库
    示例代码:
import pandas as pd

# 从CSV文件中读取数据
data = pd.read_csv('data.csv')

# 将数据写入Excel文件
data.to_excel('data.xlsx', index=False)

参数详解:
1.io:读取 Excel 文件的路径(字符串),或者文件的文件对象(File-like object)。还可以是 HTTP, FTP, S3 等协议的 URL。
sheet_name:指定要读取的工作表名或工作表编号。默认值为 0,表示读取第一个工作表。
2.header:指定表头所在行的索引(以 0 开始),默认为 0,即将第一行作为表头。
3.names:将指定的列名列表作为新的表头。如果设置了 header=None则此参数必须设置,否则将自动使用数字作为列名。
index_col:将指定的列作为行索引,可以是列名或列编号(以 0 开始)。默认值为 None,即不设置行索引。

数据预处理

  • head():返回前几行数据,默认返回前5行
  • tail():返回后几行数据,默认返回后5行
  • info():返回数据的基本信息,包括列名、数据类型、非空值个数等
  • describe():返回数据的基本统计信息,包括均值、标准差、最小值、最大值等
  • dropna():删除包含缺失值的行或列
  • fillna():用指定的值填充缺失值
  • replace():用指定的值替换数据中的特定值
  • drop_duplicates():删除重复的行

示例代码:

import pandas as pd

# 返回前5行数据
data.head()

# 返回后5行数据
data.tail()

# 返回数据的基本信息
data.info()

# 返回数据的基本统计信息
data.describe()

# 删除包含缺失值的行或列
data.dropna()

# 用0填充缺失值
data.fillna(0)

# 用指定的值替换数据中的特定值
data.replace({
    
    'male': 0, 'female': 1})

# 删除重复的行
data.drop_duplicates()

dropna()参数详解:

  • axis: 指定要删除的轴,axis=0表示删除行,axis=1表示删除列,默认为0
  • how: 指定如何删除缺失值,可以是any或all。any表示删除任何包含缺失值的行或列,all表示只删除全部是缺失值的行或列,默认为any
  • thresh: 指定每行或每列至少需要有多少个非缺失值,否则删除该行或列。
  • subset: 指定要检查缺失值的列或行,可以是列或行的标签名称或者标签名称的列表。默认为检查所有列或行。(subset=[‘待删除列’, ‘待删除列’])
  • inplace: 指定是否在原始数据上进行修改,如果为True,则在原始数据上进行修改,否则返回一个新的数据副本,默认为False

数据选择和过滤

  • loc[]:通过标签选择行或列
  • iloc[]:通过索引选择行或列
  • []:通过列名选择列
  • query():通过查询条件选择行
  • groupby():按照指定的列分组
  • pivot_table():根据指定的列生成透视表

示例代码:

import pandas as pd

# 通过标签选择行或列
data.loc[2:4, 'Name':'Age']

# 通过位置选择行或列
data.iloc[2:4, 0:2]

# 通过列名选择列
data['Name']

# 通过查询条件选择行
data.query('Age > 20 and Sex == "male"')

# 按照指定的列分组
data.groupby('Sex').mean()

# 根据指定的列生成透视表
pd.pivot_table(data, values='Age', index=['Sex'], columns=['Pclass'], aggfunc=np.mean)

数据计算和转换

  • apply():对每行或每列应用指定的函数
  • map():对每个元素应用指定的函数
  • agg():对每个分组应用指定的函数
  • transform():对每个分组应用指定的函数并返回结果
  • merge():合并多个数据集
  • concat():沿指定轴将多个数据集连接在一起
  • pivot():根据指定的列生成透视表

示例代码:

import pandas as pd

# 对每行或每列应用指定的函数
data.apply(lambda x: x.max() - x.min(), axis=0)

# 对每个元素应用指定的函数
data['Age'].map(lambda x: x * 2)

# 对每个分组应用指定的函数
data.groupby('Sex')['Age'].agg(['mean', 'std'])

# 对每个分组应用指定的函数并返回结果
data.groupby('Sex')['Age'].transform(lambda x: (x - x.mean()) / x.std())

# 合并多个数据集
pd.merge(data1, data2, on='key')

# 沿指定轴将多个数据集连接在一起
pd.concat([data1, data2], axis=0)

# 根据指定的列生成透视表
data.pivot(index='Name', columns='Sex', values='Age')

fillna()函数参数说明

  • value:用于填充缺失值的标量值、字典、Series 或 DataFrame。默认值为 None,即不填充。

  • method:指定填充缺失值的方法。可选的值包括:
    ffillpad:使用前面的非缺失值填充缺失值。
    bfillbackfill:使用后面的非缺失值填充缺失值。

  • nearest:使用最近的非缺失值填充缺失值。

  • axis:指定在哪个轴上进行填充操作。默认为 0,表示填充行缺失值;1 表示填充列缺失值。

  • inplace:是否在原 DataFrame 上修改。默认为 False,即返回新的 DataFrame。

merge()参数说明

  • left:要合并的左侧DataFrame。
  • right:要合并的右侧DataFrame。
  • how:指定如何合并,默认为’inner’,即取交集。还可以是**‘outer’,即取并集**;‘left’,即以左侧DataFrame为准,右侧DataFrame中无对应项时填充缺失值;‘right’,即以右侧DataFrame为准,左侧DataFrame中无对应项时填充缺失值。
  • on:指定要进行合并的列名。必须同时存在于左右两个DataFrame中。如果未指定,则会自动使用两个DataFrame中的共同列进行合并。
  • left_on:指定左侧DataFrame用于合并的列名。如果未指定,则会自动使用两个DataFrame中的共同列进行合并。
  • right_on:指定右侧DataFrame用于合并的列名。如果未指定,则会自动使用两个DataFrame中的共同列进行合并

补充知识:数据透视表

什么是数据透视表?

数据透视表是一种用于对数据进行汇总和分析的数据表格。它是通过将原始数据表格按照特定的方式重新排列而创建的。数据透视表通常用于数据分析、可视化和报告生成等任务,因为它可以使数据更易于理解和分析。

pivot()函数详解

在pivot()函数中,您需要指定三个参数:索引列和值索引是要保留在结果表中的列列是要分组的列,而值是要聚合的列的值。==pivot()==将索引列的唯一值组成新的行,而将列的唯一值组成新的列。然后,将值聚合到新表中的相应单元格中。
例如,假设您有以下数据框:

import pandas as pd

df = pd.DataFrame({
    
    
    'date': ['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-01', '2022-01-02', '2022-01-03'],
    'category': ['A', 'A', 'A', 'B', 'B', 'B'],
    'value': [1, 2, 3, 4, 5, 6]
})

pivot_df = df.pivot(index='date', columns='category', values='value')

这将产生以下数据透视表:

category    A  B
date            
2022-01-01  1  4
2022-01-02  2  5
2022-01-03  3  6

数据可视化(应用matplotlib库)

  • plot():生成常见的图形,包括折线图、散点图、条形图等
  • hist():生成直方图
  • boxplot():生成箱线图
  • heatmap():生成热力图
  • scatter_matrix():生成散点图矩阵
import pandas as pd
import matplotlib.pyplot as plt

# 生成折线图
data.plot(x='Age', y='Fare')

# 生成直方图
data['Age'].hist()

# 生成箱线图
data.boxplot(column='Age', by='Sex')

# 生成热力图
corr = data.corr()
plt.imshow(corr, cmap='hot', interpolation='nearest')
plt.show()

# 生成散点图矩阵
pd.plotting.scatter_matrix(data[['Age', 'Fare', 'Survived']])

猜你喜欢

转载自blog.csdn.net/m0_68678046/article/details/129667859