Python创建DataFrame

Python创建DataFrame

Python创建DataFrame

什么是DataFrame?

DataFrame是Pandas库中最常用的数据结构之一,也是Python数据分析中最重要的数据结构之一。DataFrame可以看作是一种二维表格,类似于Excel表格,可以存储和处理具有不同数据类型的数据。

在DataFrame中,数据被组织成行和列的形式。每一列可以是不同的数据类型(如整数、浮点数、字符串等),而每一行则表示一个数据样本。DataFrame不仅可以执行各种数据操作,包括数据清洗、数据转换和数据分析,还可以进行数据可视化。

Pandas库是Python中最常用的数据分析库之一,广泛应用于金融、科学、统计、社会科学等领域。Pandas提供了高效的数据结构和数据分析工具,可以方便地处理和分析大规模的数据。

如何创建DataFrame?

Pandas库提供了多种方法来创建DataFrame,下面我们将介绍一些常用的创建DataFrame的方法。

1. 从CSV文件中创建DataFrame

CSV(逗号分隔值)是一种常见的数据存储格式,很多数据集在CSV文件中进行存储。Pandas库提供了read_csv()函数,可以从CSV文件中读取数据并创建DataFrame对象。

import pandas as pd

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

# 显示DataFrame的前5行数据
print(df.head())

运行上述代码,会从名为”data.csv”的CSV文件中读取数据,并打印DataFrame的前5行数据。

2. 从列表创建DataFrame

我们也可以从列表(List)创建DataFrame。列表中的每个元素都代表一列数据,而列表的长度就是DataFrame的行数。

import pandas as pd

# 列表数据
data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]

# 创建DataFrame
df = pd.DataFrame(data, columns=['Name', 'Age'])

# 显示DataFrame的数据
print(df)

运行上述代码,会创建一个包含两列(姓名和年龄)的DataFrame,并打印出DataFrame的数据。

3. 从字典创建DataFrame

另一种常用的方法是使用字典(Dictionary)创建DataFrame。字典的键代表列名,而字典的值代表相应列的数据。

import pandas as pd

# 字典数据
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}

# 创建DataFrame
df = pd.DataFrame(data)

# 显示DataFrame的数据
print(df)

运行上述代码,会创建一个包含两列(姓名和年龄)的DataFrame,并打印出DataFrame的数据。

4. 从NumPy数组创建DataFrame

NumPy是Python中用于科学计算的重要库,它提供了强大的数组对象和相关的数值计算函数。我们可以使用NumPy数组创建DataFrame。

import pandas as pd
import numpy as np

# 创建随机数组
data = np.random.rand(3, 2)

# 创建DataFrame
df = pd.DataFrame(data, columns=['A', 'B'])

# 显示DataFrame的数据
print(df)

运行上述代码,会创建一个包含两列(A和B)的DataFrame,并打印出DataFrame的数据。

DataFrame的操作

创建了DataFrame之后,我们可以对其进行各种操作,包括数据清洗、数据转换和数据分析。

访问DataFrame的数据

我们可以使用head()函数查看DataFrame的前几行数据,使用tail()函数查看DataFrame的后几行数据,使用shape属性查看DataFrame的形状(行数和列数)。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 显示DataFrame的前两行数据
print(df.head(2))

# 显示DataFrame的后两行数据
print(df.tail(2))

# 显示DataFrame的形状
print(df.shape)

运行上述代码,会分别打印出DataFrame的前两行数据、后两行数据和形状。

访问DataFrame的列

我们可以使用列名访问DataFrame中的某一列数据,也可以使用[]操作符访问多列数据。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 访问Name列数据
print(df['Name'])

# 访问Name和Age列数据
print(df[['Name', 'Age']])

运行上述代码,会分别打印出DataFrame的Name列数据和Name、Age列数据。

访问DataFrame的行

我们可以使用.loc[]操作符根据行号访问DataFrame中的某一行数据,也可以使用.iloc[]操作符根据索引访问DataFrame中的某一行数据。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 访问第一行数据
print(df.loc[0])

# 访问第一行和第三行数据
print(df.loc[[0, 2]])

# 访问索引为1的行数据
print(df.iloc[1])

运行上述代码,会分别打印出DataFrame的第一行数据、第一行和第三行数据,以及索引为1的行数据。

修改DataFrame的数据

我们可以通过列名或行号修改DataFrame中的数据,也可以使用at[]操作符根据行号和列名来修改DataFrame中的某一数据。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 修改Name列数据
df['Name'] = ['Amy', 'Ben', 'Cathy']

# 修改第一行数据
df.loc[0] = ['Alice', 28]

# 修改索引为1的行和Age列数据
df.at[1, 'Age'] = 31

# 显示DataFrame的数据
print(df)

运行上述代码,会修改DataFrame的Name列数据、第一行数据和索引为1的行数据,然后打印出修改后的DataFrame数据。

添加新的列和行

我们可以使用赋值操作符新增一列,并指定列名和列的值。此外,我们可以使用.loc[]操作符新增一行,其中行号可以超过已有行的数量。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 添加新的列
df['Gender'] = ['Female', 'Male', 'Male']

# 添加新的行
df.loc[3] = ['Dave', 40]

# 显示DataFrame的数据
print(df)

运行上述代码,会添加新的Gender列和新的行,然后打印出添加后的DataFrame数据。

删除列和行

我们可以使用drop()函数删除DataFrame中的某一列或某一行数据。需要注意的是,drop()函数并不会修改原始DataFrame,而是返回一个新的DataFrame。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 删除Name列
df_new = df.drop('Name', axis=1)

# 删除第一行
df_new = df.drop(0)

# 显示删除后的DataFrame数据
print(df_new)

运行上述代码,会分别删除DataFrame的Name列和第一行数据,然后打印出删除后的DataFrame数据。

数据筛选和过滤

我们可以使用逻辑运算符(如><==等)对DataFrame进行筛选和过滤。通过设置逻辑条件,可以选择满足条件的行或列。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 筛选年龄大于30的行
df_new = df[df['Age'] > 30]

# 显示筛选后的DataFrame数据
print(df_new)

运行上述代码,会筛选出DataFrame中年龄大于30的行,并打印出筛选后的DataFrame数据。

DataFrame的基本操作示例

下面我们以一个具体的示例来演示如何使用DataFrame进行数据分析。

假设我们有一个存储了学生姓名、年龄和成绩的数据集,数据包含多个学生的信息。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Score': [80, 90, 85]}
df = pd.DataFrame(data)

# 显示DataFrame的数据
print(df)

运行上述代码,会创建一个包含三列的DataFrame,其中包含姓名、年龄和成绩的数据。

接下来,我们可以对数据进行各种操作。

统计描述

我们可以使用describe()函数对DataFrame中的数值列进行统计描述,包括计数、平均值、标准差、最小值、25%分位数、50%分位数、75%分位数和最大值。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Score': [80, 90, 85]}
df = pd.DataFrame(data)

# 统计描述
print(df.describe())

运行上述代码,会对DataFrame中的数值列(Age和Score)进行统计描述,并打印出统计结果。

排序和排名

我们可以使用sort_values()函数对DataFrame按照指定的列进行排序,默认是升序排序。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Score': [80, 90, 85]}
df = pd.DataFrame(data)

# 按照Age列进行升序排序
df_sorted = df.sort_values('Age')

# 显示排序后的DataFrame数据
print(df_sorted)

运行上述代码,会按照Age列进行升序排序,并打印出排序后的DataFrame数据。

除了排序,我们还可以使用rank()函数对DataFrame的数值列进行排名。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Score': [80, 90, 85]}
df = pd.DataFrame(data)

# 对Score列进行排名
df['Rank'] = df['Score'].rank()

# 显示包含排名的DataFrame数据
print(df)

运行上述代码,会对DataFrame的Score列进行排名,并将排名结果保存在新的Rank列中,然后打印出包含排名的DataFrame数据。

分组和聚合

我们可以使用groupby()函数对DataFrame进行分组,并使用聚合函数对分组后的数据进行计算。

import pandas as pd

# 创建DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],
        'Age': [25, 30, 35, 25, 30],
        'Score': [80, 90, 85, 95, 75]}
df = pd.DataFrame(data)

# 根据Name列分组,并计算每个分组的平均值
df_grouped = df.groupby('Name').mean()

# 显示分组和聚合后的DataFrame数据
print(df_grouped)

运行上述代码,会根据DataFrame的Name列进行分组,并计算每个分组的平均值,然后打印出分组和聚合后的DataFrame数据。

总结

Python的Pandas库提供了强大的DataFrame数据结构,可以方便地进行数据处理和分析。我们可以使用多种方法创建DataFrame,并对其进行各种操作,包括访问、修改、添加、删除、筛选和聚合等。通过掌握DataFrame的创建和操作技巧,我们可以更好地处理和分析数据,为数据科学和数据分析工作提供有力支持。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程