第三章

pandas统计分析基础(DataFrame的使用操作)

统计分析是数据分析的重要组成部分,它几乎贯穿了整个数据分析的流程。运用统计方法,将定量问题与定性问题结合进行的研究活动叫作统计分析。统计分析除了包含单数值型特征的数据集中趋势、离散趋势和峰度与偏度等统计知识外,还包含多个特征间的比较计算等知识。以下将介绍使用pandas库进行统计分析所需要掌握的基本知识。pandas是一个开源的数据分析库,提供了丰富强大的数据结构和数据分析工具,其中最常用的数据结构是DataFrame。DataFrame是一个二维的数据结构,类似于电子表格或SQL表,每列可以是不同的数据类型。通过pandas的DataFrame,我们可以轻松地加载、处理、分析和操作数据。

DataFrame的基本操作包括:

  1. 创建DataFrame:可以从CSV文件、数据库、字典、列表等数据源中创建DataFrame。
  2. 查看数据:可以使用head()、tail()等方法查看DataFrame的前几行或后几行数据。
  3. 数据选择:可以使用列名、行索引、条件等方式选择数据。
  4. 数据筛选:可以根据条件筛选数据。
  5. 数据排序:可以对数据按照特定的列进行排序。
  6. 数据统计:可以进行各种统计分析,如求和、计数、均值等。
  7. 缺失值处理:可以对缺失值进行填充或删除。
  8. 数据可视化:可以使用matplotlib库对数据进行可视化展示。

通过pandas提供的这些功能,我们可以方便地进行各种数据分析任务,如数据清洗、数据整合、数据探索等。

文章目录


  • 前言
  • 一、认识pandas
  • 二、掌握DataFrame的常用操作
  • 三、代码展示
  • 四、描述分析DataFrame数据
  • 五、数据处理和分析的强大库
  • 总结

 一、认识pandas

Pandas 是一个开源的 Python 数据分析库,提供了快速、强大、灵活和易于使用的数据结构,使数据操作变得更加简单。Pandas 的核心数据结构是 Series(一维数据)和 DataFrame(二维数据),它们可以处理各种数据格式,包括 CSV 文件、SQL 数据库、Excel 表格等。Pandas 提供了丰富的数据处理和分析工具,如数据过滤、排序、分组、聚合等,使用户能够快速进行数据清洗、转换和分析工作。

pandas是一个强大的数据分析工具库,是基于Python编程语言的开源数据处理工具。pandas提供了简单易用的数据结构,如Series和DataFrame,以及丰富的数据操作功能,可以对数据进行清洗、转换、分析和可视化。通过pandas,用户可以方便地处理各种数据,包括读取和写入各种格式的数据文件(如CSV、Excel、数据库等)、数据筛选、分组、聚合、合并等操作。pandas是数据科学和机器学习领域常用的工具之一,帮助用户快速、高效地处理和分析数据。

Pandas是一个强大的数据处理库,主要用于数据清洗、数据重塑和数据分析。以下是Pandas库在数据处理中常用的功能和方法:

  1. 数据读取和写入:Pandas可以读取和写入多种数据格式,包括CSV、Excel、SQL数据库、JSON等。

  2. 数据查看:利用Pandas的DataFrame数据结构,可以方便地查看数据的前几行、尾几行、数据类型等信息。

  3. 数据选择和过滤:可以使用标签或位置索引来选择特定的行和列,也可以根据条件进行数据筛选。

  4. 数据清洗:处理缺失值、重复值、异常值等数据清洗工作。

  5. 数据重塑:对数据进行透视表、堆叠、拆分等操作,以便更好地分析数据。

  6. 数据分组和聚合:利用groupby()方法对数据进行分组,然后进行聚合操作,如求和、计数、平均值等。

  7. 数据合并:可以将多个DataFrame按照指定的键进行连接、合并或拼接。

  8. 数据可视化:Pandas结合Matplotlib库可以进行数据可视化分析,生成各种图表展示数据。

总的来说,Pandas提供了丰富的功能和方法,使数据处理变得更加高效和便捷。通过学习和掌握Pandas,可以更好地处理和分析数据。


前言

在数据科学与数据分析领域,高效处理和分析数据是获取洞察、驱动决策的核心。而DataFrame作为Python中数据处理的基石,就像是一把万能钥匙,能打开结构化数据的宝库。无论是处理CSV文件中的销售记录,还是整合数据库里的用户信息,DataFrame都以其表格化、灵活易用的特性,成为数据分析师、科学家和工程师的必备工具。它允许你在同一数据结构中混合数值、文本、日期等多种数据类型,支持快速筛选、统计、转换和合并等操作。无论是对数据进行初步清洗、探索性分析,还是完成复杂的数据建模,DataFrame都是贯穿整个流程的重要角色。掌握DataFrame的常用操作,不仅能大幅提升数据处理效率,更是通向高阶数据分析与机器学习的必经之路。接下来,我们将深入探讨这些实用操作,助你轻松驾驭数据,释放数据的真正价值。

在Python数据分析中,Pandas 是一个强大的数据处理工具,它提供了许多用于数据分析的功能。下面是一些基础的统计分析方法,可以帮助你开始使用 Pandas 进行数据分析:

  1. 描述性统计分析:Pandas 提供了一些描述性统计方法,通过调用 describe() 方法,可以快速查看数据的统计摘要信息,包括平均值、标准差、最小值、最大值等。
df.describe()

  1. 计算均值和中位数:可以使用 mean() 和 median() 方法计算数据列的均值和中位数。
df['column_name'].mean()
df['column_name'].median()

  1. 计算标准差和方差:使用 std() 方法计算数据列的标准差,方差可以通过 var() 方法得到。
df['column_name'].std()
df['column_name'].var()

  1. 计算相关性:可以使用 corr() 方法计算数据列之间的相关性。
df.corr()

  1. 统计频数:使用 value_counts() 方法可以统计某一列中每个值出现的频数。
df['column_name'].value_counts()

  1. 绘制直方图:Pandas 可以通过 hist() 方法绘制数据列的直方图。
df['column_name'].hist()

以上是一些基础的统计分析方法,Pandas 还提供了更多高级的统计计算功能,例如群组分析、聚合函数等,可以根据你的需求进一步深入学习。


一、掌握DataFrame的常用

1.查看DataFrame的属性

(1)DataFrame的基础属性有values、index、columns和dtypes,分别可以获取元素、索引、列名和数据类型。

(2)除了上述四个基本属性外,还可以通过size、ndim和shape属性获取DataFrame的元素个数、维度、和形状

(3)另外,T属性能够实现DataFrame的转置(行、列转换)。在某些特殊场景下,某些函数或方法只能作用于列或行,此时即可试着用转置来解决这一问题。

首先,我们需要导入sklearn.datasets库,并加载wine数据集。然后,将数据集转换为DataFrame,并查看样本数、属性数以及每个属性是否有缺失值。以下是示例代码:
import pandas as pd
from sklearn.datasets import load_wine

# 加载wine数据集
wine_dataset = load_wine()

# 转换为DataFrame
df = pd.DataFrame(wine_dataset.data, columns=wine_dataset.feature_names)

# 查看样本数、属性数
num_samples = df.shape[0] # 样本数
num_features = df.shape[1] # 属性数

# 检查是否有缺失值
missing_values = df.isnull().sum()

print("样本数: ", num_samples)
print("属性数: ", num_features)
print("每个属性是否有缺失值:")
print(missing_values)

在查看DataFrame的属性时,需要注意以下几个事项:

  1. 确保DataFrame已经被正确创建并加载了数据,否则会出现属性不存在的情况。

  2. 调用属性的方法或属性名时,需要正确使用语法,比如使用点操作符"."访问属性。

  3. 确保属性名是正确的,否则会出现属性不存在的报错。

  4. 在使用属性时,要了解该属性的含义和用途,以便正确地获取所需信息。

  5. 尽量避免直接修改属性值,除非你知道这样做不会影响其他相关数据或操作。

总之,查看DataFrame的属性时需要谨慎操作,确保数据的准确性和完整性。


运行结果如下 

执行以上代码,将输出wine数据集的样本数、属性数以及每个属性是否有缺失值的信息。


2.查、改、增、删DataFrame数据

(1)查询数据

通过标签(loc)、位置(iloc)或条件筛选,获取DataFrame中特定行、列或单元格的数据。如df.loc[row_label, column_label]按标签获取指定行和列的数据,df.iloc[row_index, column_index]按位置获取数据,df[df['column_name'] > value]通过条件筛选出满足条件的行。

(2)修改数据

改变DataFrame中现有数据的值。可以通过指定位置或条件来修改数据,如df.loc[row_label, column_label] = new_value修改指定行和列的数据,df.loc[df['column_name'] > value, 'another_column'] = new_value根据条件批量修改数据。

(3)新增数据

向DataFrame中添加新的行或列。可以通过直接赋值的方式新增列,如df['new_column'] = values,也可以使用append方法或直接通过loc索引新增行,如df = df.append(new_row)或df.loc[new_index] = values。

(4)删除数据

从DataFrame中移除指定的行或列。使用drop方法并指定axis=0删除行,axis=1删除列,如df.drop(row_label, axis=0)删除指定行,df.drop(column_label, axis=1)删除指定列,也可以通过条件筛选来删除满足条件的行,如df = df[df['column_name']!= value]。

在对DataFrame数据进行查、改、增、删操作时,需要注意以下几个事项:

  1. 列名或行索引的准确性:确保使用正确的列名或行索引进行操作,否则可能出现错误。
  2. 数据类型的一致性:确保数据类型的一致性,特别是在修改或新增数据时,需要保持数据类型的一致性。
  3. 数据的完整性:查找、修改、增加或删除数据时,要确保数据的完整性,避免出现缺失数据或错误数据。
  4. 使用合适的方法:Pandas提供了多种方法来进行数据操作,选择合适的方法可以提高效率和准确性。
  5. 进行适当的数据预处理:在进行数据操作之前,可以进行适当的数据清洗和处理,以确保数据的质量和准确性。
  6. 使用适当的条件:在查找或删除数据时,需要使用合适的条件来筛选数据,确保操作的准确性。
  7. 处理异常情况:在数据操作过程中,要考虑异常情况的处理,例如处理缺失值、重复数据等情况。

在Python的pandas库中,可以通过一系列方法来对DataFrame数据进行查找、修改、增加和删除操作。以下是一些常用的方法:


  1. 查找数据:
# 通过列名查找数据
df['column_name']

# 通过行号查找数据
df.loc[row_number]

# 通过条件查找数据
df[df['column_name'] == value]

  1. 修改数据:
# 修改某一单元格的数值
df.at[row_number, 'column_name'] = new_value

# 批量修改某一列的数值
df['column_name'] = new_values

  1. 增加数据:
# 增加新列
df['new_column'] = values

# 增加新行
new_row = {'column1': value1, 'column2': value2}
df = df.append(new_row, ignore_index=True)

  1. 删除数据:
# 删除某一列
df = df.drop('column_name', axis=1)

# 删除某一行
df = df.drop(row_number)

# 删除满足条件的行
df = df[~(df['column_name'] == value)]

通过以上方法,可以方便地对DataFrame数据进行查找、修改、增加和删除操作。


二、代码展示

1.查看DataFrame的属性

代码如下(示例):

(1)import pandas as pd

# 创建示例 DataFrame
data = {
    '姓名': ['张三', '李四', '王五'],
    '年龄': [20, 21, 22],
    '性别': ['男', '女', '男']
}
df = pd.DataFrame(data)

# 获取元素(返回 numpy 数组)
values = df.values
print("values:\n", values)

# 获取索引(行标签)
index = df.index
print("index:\n", index)

# 获取列名
columns = df.columns
print("columns:\n", columns)

# 获取各列数据类型
dtypes = df.dtypes
print("dtypes:\n", dtypes)

结果如下图;

 (2)代码如下(示例):

import pandas as pd

data = {
    '水果': ['苹果', '香蕉', '橙子'],
    '数量': [5, 8, 3],
    '价格': [3.5, 2.8, 4.2]
}
df = pd.DataFrame(data)

print("size属性:")
print(df.size)

print("ndim属性:")
print(df.ndim)

print("shape形状:")
print(df.shape)

 结果如下图;

(3) 代码如下(示例):

import pandas as pd

data = {
    '水果': ['苹果', '香蕉', '橙子'],
    '数量': [5, 8, 3],
    '价格': [3.5, 2.8, 4.2]
}
df = pd.DataFrame(data)

print("原始DataFrame:")
print(df)

print("\n转置后的DataFrame:")
print(df.T)

  结果如下图;

在查看DataFrame的属性时,需要注意以下几个事项:

  1. 确保DataFrame已经被正确创建并加载了数据,否则会出现属性不存在的情况。

  2. 调用属性的方法或属性名时,需要正确使用语法,比如使用点操作符"."访问属性。

  3. 确保属性名是正确的,否则会出现属性不存在的报错。

  4. 在使用属性时,要了解该属性的含义和用途,以便正确地获取所需信息。

  5. 尽量避免直接修改属性值,除非你知道这样做不会影响其他相关数据或操作。

总之,查看DataFrame的属性时需要谨慎操作,确保数据的准确性和完整性。

2.查、改、增、删DataFrame数据

(1)查询代码如下(示例):

import pandas as pd

# 创建示例 DataFrame
data = {
    '姓名': ['Alice', 'Bob', 'Charlie'],
    '年龄': [25, 30, 35],
    '城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])  # 自定义行索引

# 查询:获取行索引为 'b',列名为 '年龄' 的值
print(df.loc['b', '年龄'])  # 输出:30

# 查询:获取多行多列(用列表指定标签)
print(df.loc[['a', 'c'], ['姓名', '城市']])
# 查询:第 1 行(下标 0),第 2 列(下标 1)的值
print(df.iloc[0, 1])  # 输出:25(年龄)

# 查询:前 2 行,所有列
print(df.iloc[:2, :])

运行结果如下 


(2) 修改数据代码如下(示例):

import pandas as pd

# 创建示例 DataFrame
data = {
    '姓名': ['Alice', 'Bob', 'Charlie'],
    '年龄': [25, 30, 35],
    '城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])  # 自定义行索引

# 通过 loc 修改行 'c' 的城市为 '杭州'
df.loc['c', '城市'] = '杭州'
# 通过 iloc 修改行 1(下标 1)的年龄为 31
df.iloc[1, 1] = 31
print("\n修改后 DataFrame:")
print(df)

运行结果如下; 

(3) 新增数据代码如下(示例): 

import pandas as pd

# 创建示例 DataFrame
data = {
    '姓名': ['Alice', 'Bob', 'Charlie'],
    '年龄': [25, 30, 35],
    '城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])  # 自定义行索引

# 新增 '身高' 列(列表赋值)
df['身高'] = [165, 170, 175]
# 新增 '是否学生' 列(标量赋值,自动广播)
df['是否学生'] = False
print("\n新增列后:")
print(df)

# 新增行索引 'd' 的数据
df.loc['d'] = ['David', 22, '成都', 180, True]
print("\n新增行后:")
print(df)

运行结果如下; 

 (4) 删除数据代码如下(示例): 

import pandas as pd

# 创建示例 DataFrame
data = {
    '姓名': ['Alice', 'Bob', 'Charlie'],
    '年龄': [25, 30, 35],
    '城市': ['北京', '上海', '广州']
}
df = pd.DataFrame(data, index=['a', 'b', 'c'])  # 自定义行索引
# 新增 '身高' 列(列表赋值)
df['身高'] = [165, 170, 175]
# 新增 '是否学生' 列(标量赋值,自动广播)
df['是否学生'] = False
print("\n新增列后:")
print(df)
# 删除 '身高' 列(inplace=True 直接修改原 DataFrame)
df.drop('身高', axis=1, inplace=True)
print("\n删除列后:")
print(df)
# 删除行索引 'a'
df.drop('a', axis=0, inplace=True)
# 筛选删除年龄 <= 25 的行
df = df[df['年龄'] > 25]
print("\n删除行后:")
print(df)

运行结果如下图; 

在对DataFrame数据进行查、改、增、删操作时,需要注意以下几个事项:

  1. 列名或行索引的准确性:确保使用正确的列名或行索引进行操作,否则可能出现错误。
  2. 数据类型的一致性:确保数据类型的一致性,特别是在修改或新增数据时,需要保持数据类型的一致性。
  3. 数据的完整性:查找、修改、增加或删除数据时,要确保数据的完整性,避免出现缺失数据或错误数据。
  4. 使用合适的方法:Pandas提供了多种方法来进行数据操作,选择合适的方法可以提高效率和准确性。
  5. 进行适当的数据预处理:在进行数据操作之前,可以进行适当的数据清洗和处理,以确保数据的质量和准确性。
  6. 使用适当的条件:在查找或删除数据时,需要使用合适的条件来筛选数据,确保操作的准确性。
  7. 处理异常情况:在数据操作过程中,要考虑异常情况的处理,例如处理缺失值、重复数据等情况。


四、在Python中,Pandas是一个用于数据处理和分析的强大库。下面是一个简单的示例,演示如何使用Pandas库读取数据、进行数据处理、分析和可视化:

  1. 导入Pandas库:
import pandas as pd

  1. 读取数据文件,比如CSV文件:
data = pd.read_csv('data.csv')

  1. 查看数据的前几行:
print(data.head())

  1. 进行数据处理,比如筛选特定列、处理缺失值等:
# 筛选特定列
selected_data = data[['column1', 'column2']]

# 处理缺失值
data.dropna(inplace=True)

  1. 数据分析,比如计算统计信息、描述性统计:
# 计算统计信息
data_mean = data['column1'].mean()

# 描述性统计
data_desc = data.describe()

  1. 数据可视化,比如绘制柱状图、折线图、散点图等:
import matplotlib.pyplot as plt

# 绘制柱状图
data['column1'].plot(kind='bar')
plt.show()

# 绘制折线图
data['column2'].plot(kind='line')
plt.show()

# 绘制散点图
data.plot(x='column1', y='column2', kind='scatter')
plt.show()

以上是一个简单的示例,演示了如何使用Pandas库进行数据的读取和处理,实现数据分析和可视化的功能。在实际应用中,可以根据具体需求进一步深入学习和使用Pandas库的更多功能。


Pandas是一个流行的数据处理库,用于数据的读取、处理和分析。以下是使用Pandas进行数据读取和处理的总结:

  1. 数据读取:

    • 使用pd.read_csv()读取CSV文件。
    • 使用pd.read_excel()读取Excel文件。
    • 使用pd.read_sql()读取SQL数据库中的数据。
    • 使用pd.read_json()读取JSON格式的数据。
    • 使用pd.read_html()从HTML页面中提取表格数据。
  2. 数据查看和探索:

    • 使用df.head()查看数据集的前几行。
    • 使用df.tail()查看数据集的后几行。
    • 使用df.info()查看数据集的基本信息。
    • 使用df.describe()生成数据集的统计摘要。
  3. 数据处理:

    • 选择数据:使用df['column_name']选择特定列,使用df.loc[]或df.iloc[]选择特定行。
    • 过滤数据:使用条件语句过滤数据,例如df[df['column'] > value]。
    • 缺失值处理:使用df.dropna()删除缺失值,使用df.fillna(value)填充缺失值。
    • 数据排序:使用df.sort_values()对数据进行排序。
    • 数据合并:使用pd.concat()或pd.merge()合并数据集。
    • 数据分组和聚合:使用df.groupby()进行分组操作,使用聚合函数进行数据聚合。
    • 数据清洗:删除重复数据使用df.drop_duplicates()。
  4. 数据可视化:

    • 使用df.plot()生成简单的数据可视化图表。
    • 使用Matplotlib或Seaborn库进行更复杂的数据可视化。
  5. 数据输出:

    • 使用df.to_csv()将数据保存为CSV文件。
    • 使用df.to_excel()将数据保存为Excel文件。
    • 使用df.to_sql()将数据保存到SQL数据库。
    • 使用df.to_json()将数据保存为JSON格式。

总的来说,Pandas提供了丰富的功能和方法,可以灵活地处理和分析各种类型的数据,是数据分析和处理的重要工具之一。


三、描述分析DataFrame数据

描述分析DataFrame数据是数据分析中至关重要的一环,它能帮助我们快速掌握数据的基本特征、分布情况等,以下从多个方面进行介绍:

1. 查看基本信息

• 形状:使用shape属性,可快速了解DataFrame的行数和列数,格式为(行数, 列数)。例如df.shape,能直观知晓数据集的规模。

• 索引和列名:通过index属性查看行索引,columns属性查看列名。如df.index可获取DataFrame的行索引信息,df.columns能查看所有列名。

• 数据类型:利用dtypes属性查看每列的数据类型,有助于判断数据是否符合预期,比如数值型数据是否被错误识别为字符串等。
 

import pandas as pd

# 创建示例DataFrame
data = {
    'col1': [1, 2, 3, None],
    'col2': [4.5, 5.6, 6.7, 7.8],
    'col3': ['a', 'b', 'c', 'd'],
    'col4': [True, False, True, False]
}
df = pd.DataFrame(data)

# 查看形状
print("DataFrame的形状:", df.shape)

# 查看行索引
print("行索引:", df.index)

# 查看列名
print("列名:", df.columns)

# 查看数据类型
print("数据类型:\n", df.dtypes)


2. 统计性描述

• 汇总统计:调用describe()方法,会生成包含计数(count)、均值(mean)、标准差(std)、最小值(min)、25%分位数(25%)、50%分位数(中位数,50%)、75%分位数(75%)、最大值(max)等统计量的表格,适用于数值型列。

• 自定义统计:对于特定需求,还可使用sum()计算列的总和,mean()计算均值,median()计算中位数,var()计算方差,skew()计算偏度,kurt()计算峰度等方法进行深入分析。
 

# 汇总统计
print("汇总统计:\n", df.describe())

# 自定义统计 - 计算col1的总和
print("col1的总和:", df['col1'].sum())

# 自定义统计 - 计算col2的均值
print("col2的均值:", df['col2'].mean())


3. 数据分布观察

• 唯一值和计数:对某一列使用unique()方法可获取该列所有唯一值,nunique()方法能得到唯一值的数量,value_counts()方法则统计每个唯一值出现的频数,常用于了解分类变量的分布。

• 可视化:借助matplotlib、seaborn等库,通过柱状图、直方图、箱线图、散点图等可视化方式直观呈现数据分布情况。例如,用直方图展示数值型变量的分布区间,箱线图可显示数据的四分位数、异常值等信息。
 

# 唯一值和计数 - 查看col3的唯一值
print("col3的唯一值:", df['col3'].unique())

# 唯一值和计数 - 查看col3唯一值的数量
print("col3唯一值的数量:", df['col3'].nunique())

# 唯一值和计数 - 统计col3每个唯一值出现的频数
print("col3每个唯一值出现的频数:\n", df['col3'].value_counts())

# 可视化 - 以col2为例绘制直方图
import matplotlib.pyplot as plt
df['col2'].hist()
plt.title('Histogram of col2')
plt.xlabel('Value')
plt.ylabel('Frequency')
plt.show()


4. 缺失值分析

• 检测缺失值:使用isnull()或notnull()方法,会返回一个与原DataFrame相同形状的布尔型DataFrame,指示每个元素是否为缺失值(NaN)。

• 统计缺失值:结合sum()方法,如df.isnull().sum()可按列统计缺失值的数量,了解数据缺失情况,为后续的数据清洗和处理提供依据。
 

# 检测缺失值
print("检测缺失值:\n", df.isnull())

# 统计缺失值
print("按列统计缺失值数量:\n", df.isnull().sum())


5. 相关性分析

• 数值型变量相关性:通过corr()方法计算各数值型列之间的相关系数,生成相关系数矩阵,能发现变量之间的线性相关程度,取值范围在 -1 到 1 之间,绝对值越接近 1 表示相关性越强。

• 可视化相关性:利用seaborn库的heatmap()函数绘制热力图,直观展示相关系数矩阵,便于观察变量间的关系模式。

# 数值型变量相关性 - 计算相关系数矩阵
numeric_df = df.select_dtypes(include=['number'])  # 筛选数值型列
print("相关系数矩阵:\n", numeric_df.corr())

# 可视化相关性 - 绘制相关系数矩阵热力图
import seaborn as sns
sns.heatmap(numeric_df.corr(), annot=True)
plt.title('Correlation Heatmap')
plt.show()

总结 

1.内容主要介绍了查看DataFrame属性的相关知识,具体总结如下:
基础属性
DataFrame有values、index、columns和dtypes四个基础属性。其中values可获取DataFrame中的元素;index用于获取行索引;columns能获取列名;dtypes则可查看各列的数据类型。

其他属性

通过size属性可获取DataFrame的元素个数;ndim属性用于获取其维度;shape属性能够获取DataFrame的形状(即行数和列数的元组形式) 。

特殊属性

T属性能够实现DataFrame的转置,即进行行和列的转换,可用于解决某些函数或方法仅适用于列或行的特殊场景问题。

2.DataFrame作为Python中pandas库的核心数据结构,在数据处理与分析中占据关键地位。围绕其查、改、增、删操作,核心知识点总结如下:

• 查询数据:通过标签索引loc、位置索引iloc和条件筛选实现精准定位。loc基于行/列标签取值,iloc依赖整数位置索引,而条件筛选则依据逻辑表达式过滤数据,三者满足多样化数据获取需求。

• 修改数据:可通过指定位置或条件批量修改。使用loc、iloc直接赋值,或基于条件表达式更新特定数据,实现对现有数据的灵活调整。

• 新增数据:包括新增列与新增行操作。新增列时,直接赋值即可完成;新增行可采用append方法或loc索引赋值,前者生成新DataFrame,后者直接修改原数据。

• 删除数据:利用drop方法,结合axis=0删除行、axis=1删除列;也可通过条件筛选重新赋值,剔除满足条件的行数据,实现数据精简。

在使用pandas进行统计分析时,DataFrame是一个重要的数据结构,下面是几个常用的DataFrame的使用操作总结:

  1. 创建DataFrame:
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

  1. 查看DataFrame的结构:
df.head() # 查看前几行数据
df.info() # 查看DataFrame的信息
df.describe() # 查看数值型列的统计信息

  1. 访问DataFrame的列:
df['Name'] # 访问某一列
df[['Name', 'Age']] # 访问多列

  1. 筛选数据:
df[df['Age'] > 30] # 筛选满足条件的数据行
df[(df['Age'] > 30) & (df['City'] == 'Chicago')] # 多条件筛选

  1. 排序数据:
df.sort_values(by='Age', ascending=False) # 根据某列值排序

  1. 添加新列:
df['Gender'] = ['Female', 'Male', 'Male'] # 添加新列

  1. 删除列或行:
df.drop('City', axis=1) # 删除某一列
df.drop(0, axis=0) # 删除某一行

  1. 缺失值处理:
df.dropna() # 删除包含缺失值的行
df.fillna(0) # 填充缺失值

DataFrame 是 Pandas 中的一个重要数据结构,类似于 Excel 表格,可用于处理和分析数据。以下是对 DataFrame 使用操作的总结:

  1. 创建 DataFrame:可以从文件、数据库、数据结构等多种方式创建 DataFrame。

  2. 查看数据:使用 head() 方法查看前几行数据,使用 info() 方法查看列的数据类型和缺失值情况。

  3. 数据选择:可以通过列名或索引选取特定的数据,也可以使用条件表达式选择符合条件的数据。

  4. 数据修改:可以修改数据中的值、增加新的列、删除不需要的列等操作。

  5. 数据排序:使用 sort_values() 方法对数据进行排序,可以按照单个或多个列进行排序。

  6. 数据统计:使用 describe() 方法查看数据的基本统计信息,如均值、最大值、最小值等。

  7. 数据筛选:使用 query() 方法根据指定条件筛选数据,也可以使用 isin() 方法筛选符合条件的数据。

  8. 数据合并:使用 merge() 方法合并多个 DataFrame,也可以使用 concat() 方法按照指定轴合并数据。

  9. 数据分组:使用 groupby() 方法按照指定的列进行分组,然后可以应用聚合函数对数据进行统计分析。

  10. 数据可视化:使用 Matplotlib 或 Seaborn 等库对 DataFrame 的数据进行可视化展示,如绘制折线图、柱状图等。

以上便是对 DataFrame 使用操作的总结


Python数据分析总结

在数字化时代,数据量呈爆发式增长,如何从海量数据中提取有价值的信息成为关键。Python凭借其简洁性、灵活性和强大的生态系统,成为数据分析领域的首选工具。它以丰富的库和工具为支撑,构建起一套完整且高效的数据分析流程,广泛应用于商业、科研、金融等各个领域。

Python拥有众多专为数据分析设计的库。Pandas提供了DataFrame和Series等数据结构,能够高效处理结构化数据,无论是数据的读取、清洗、转换,还是复杂的分组计算与透视分析,Pandas都能轻松应对。Numpy则专注于数值计算,通过多维数组对象和大量数学函数,大幅提升计算效率,为数据分析中的复杂运算提供了坚实基础。Matplotlib和Seaborn作为可视化库,支持创建各类静态与交互式图表,帮助用户直观展示数据特征和规律。而Scikit-learn库集成了丰富的机器学习算法,可用于数据建模和预测分析。

Python数据分析流程主要包括数据获取、清洗、分析和可视化。数据获取阶段,Python支持从多种数据源读取数据,如CSV、Excel等文件格式,以及数据库和网络数据。数据清洗是确保分析准确性的重要环节,通过处理缺失值、异常值和重复数据,提升数据质量。在分析阶段,借助统计方法和机器学习算法,挖掘数据内在关联和趋势。最后,通过可视化将分析结果以直观易懂的图表形式呈现,便于用户理解和决策。

Python数据分析在实际应用中发挥着重要作用。在商业领域,企业可通过分析销售数据、用户行为数据,优化营销策略,提升客户满意度和销售额;科研工作中,Python帮助研究人员处理实验数据,验证假设,推动科学研究的进展;金融行业利用Python进行风险评估、市场趋势预测,降低投资风险。

当然,Python数据分析也面临一些挑战。处理大规模数据时,可能会遇到内存不足和计算效率低下的问题;机器学习模型的选择和调优需要丰富的经验和专业知识;同时,数据安全和隐私保护也是不容忽视的重要问题。

总之,Python数据分析已成为数据驱动决策的核心技术,掌握Python数据分析技能,不仅能帮助我们更好地理解和处理数据,还能为个人职业发展和社会各领域的进步提供有力支持。随着数据科学的不断发展,Python数据分析也将持续演进,展现出更强大的生命力和更广阔的应用前景。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐