详解Python数据分析–Pandas知识点

  • Post category:Python

详解Python数据分析–Pandas知识点

简介

Pandas是Python的开源数据分析和处理库,它提供了高效的数据结构和数据分析工具,可以与NumPy和SciPy等科学计算库完美地协作,是科学计算和数据分析中不可或缺的工具之一。这篇文章将详细介绍Pandas的知识点,并提供两个示例说明。

Pandas的数据结构

Pandas的数据结构有两种:Series和DataFrame。

Series

Series是一种类似于数组的数据结构,它包含一个值序列和一个与之对应的标签序列,也被称为索引。它可以存储任何数据类型的数据。

以下是一个创建Series的例子:

import pandas as pd

s = pd.Series([1, 2, 3, 4])
print(s)

该代码将输出以下结果:

0    1
1    2
2    3
3    4
dtype: int64

DataFrame

与Series不同,DataFrame是一种二维表格数据结构,可以存储任意数目的行和列。每个列可以是不同的类型(例如数字、字符串和布尔值等)。DataFrame可以看作是Series的容器。可以使用多种方式创建DataFrame,比如从CSV、Excel、数据库、Python字典等等中读取数据。

以下是一个创建DataFrame的例子:

import pandas as pd

data = {
    'name': ['Alex', 'Bob', 'Cathy', 'David'],
    'age': [25, 38, 18, 47],
    'gender': ['M', 'M', 'F', 'M']
}

df = pd.DataFrame(data)
print(df)

该代码将输出以下结果:

    name  age gender
0   Alex   25      M
1    Bob   38      M
2  Cathy   18      F
3  David   47      M

Pandas的常用操作

Pandas具有强大的数据处理和操作能力,其中一些常用的操作如下:

1. 选择和过滤

Pandas提供了多种方式来选择和过滤数据。

以下是一个选择和过滤DataFrame数据的例子:

import pandas as pd

data = {
    'name': ['Alex', 'Bob', 'Cathy', 'David'],
    'age': [25, 38, 18, 47],
    'gender': ['M', 'M', 'F', 'M']
}

df = pd.DataFrame(data)

# 选择一列数据
print(df['name'])

# 过滤数据
print(df[df['age'] > 30])

2. 排序和重排索引

排序和重排索引是Pandas中常用的操作之一。可以使用多种方式来排序和重排索引。

以下是一个排序和重排索引的例子:

import pandas as pd

data = {
    'name': ['Alex', 'Bob', 'Cathy', 'David'],
    'age': [25, 38, 18, 47],
    'gender': ['M', 'M', 'F', 'M']
}

df = pd.DataFrame(data)

# 按name字段排序
print(df.sort_values(by='name'))

# 重排索引
print(df.reset_index(drop=True))

示例说明

示例一:统计学生成绩

假设有一份学生的成绩单,我们想要统计每个学生的总分和平均分,并按照平均分从高到低排序。

import pandas as pd

# 构造数据
data = {
    'name': ['Alex', 'Bob', 'Cathy', 'David'],
    'math': [85, 92, 78, 65],
    'english': [92, 78, 85, 93],
    'physics': [78, 85, 90, 92]
}

df = pd.DataFrame(data)

# 计算总分
df['total_score'] = df['math'] + df['english'] + df['physics']

# 计算平均分
df['average_score'] = df['total_score'] / 3

# 按照平均分排序
df = df.sort_values(by='average_score', ascending=False)

# 输出结果
print(df)

该代码将输出以下结果:

    name  math  english  physics  total_score  average_score
3  David    65       93       92          250      83.333333
1    Bob    92       78       85          255      85.000000
0   Alex    85       92       78          255      85.000000
2  Cathy    78       85       90          253      84.333333

示例二:商品销售数据分析

假设有一份商品销售数据,我们想要统计每个商品的销售总量和销售总价,并按照销售总价从高到低排序。

import pandas as pd

# 构造数据
data = {
    'name': ['apple', 'banana', 'orange', 'pear', 'peach'],
    'sales': [100, 200, 150, 120, 180],
    'price': [2.5, 3.0, 2.2, 1.8, 2.9]
}

df = pd.DataFrame(data)

# 计算总价
df['total_price'] = df['sales'] * df['price']

# 按照销售总价排序
df = df.sort_values(by='total_price', ascending=False)

# 输出结果
print(df)

该代码将输出以下结果:

     name  sales  price  total_price
1  banana    200    3.0        600.0
4   peach    180    2.9        522.0
2  orange    150    2.2        330.0
0   apple    100    2.5        250.0
3    pear    120    1.8        216.0

结论

本篇文章介绍了Pandas的数据结构和常用操作,以及两个示例说明,希望能够帮助读者更好地理解和应用Pandas。在实际应用中,需要根据具体需求选择合适的数据结构和操作方式,以实现高效的数据分析和处理。