使用CSV文件创建数据帧

使用CSV文件创建数据帧

在本技术文档中,我们将探讨在Python中使用CSV文件创建数据帧的过程。具体而言,我们将涵盖以下子部分−

  • 数据帧和CSV文件介绍

  • 将CSV文件读入数据帧

  • 探索数据帧

  • 操作数据帧

  • 将数据帧写入CSV文件

在整个文档中,我们将使用真实世界的实例并提供代码片段来说明每个子部分。

什么是数据帧和CSV文件?

在深入介绍如何从CSV文件创建数据帧之前,我们首先定义数据帧和CSV文件是什么。

数据帧是一个二维的、参数可变的、表格型的数据结构,带有各种类型的列。它类似于电子表格或SQL表,并且在Python中通常用于存储和操作数据。

另一方面,CSV(逗号分隔值)文件是一个普通文本文件,以表格格式存储数据,每一行表示一条记录,每一列表示一个字段。CSV文件是存储数据的常见方式,因为它们易于读取和编写,并且可以在许多不同的应用程序中打开,包括Excel和Python

将CSV文件读入为数据帧

从CSV文件创建数据帧的第一步是将文件读入Python。这可以使用“pandas”库来完成,该库提供了一种将CSV文件读入为数据帧的简单方法。

语法

import pandas as pd
df = pd.read_csv('filename.csv')

在此示例中,我们首先导入“pandas”库,然后使用“pd.read_csv”函数读入名为“filename.csv”的CSV文件。生成的对象“df”是一个包含CSV文件中数据的数据帧。

值得注意的是,“read_csv”函数有许多可选参数,可用于自定义CSV文件的读取方式。例如,您可以指定文件中使用的分隔符(如果它不是逗号)、编码,以及文件是否包含标题行。

探索数据框

一旦我们将CSV文件作为数据帧读入,就可以开始探索和分析数据。一些常见的操作包括−

  • 使用“head”函数查看数据帧的前几行

  • 使用“shape”属性检查数据帧(行和列数)

  • 使用“describe”函数查看数据框的摘要统计信息

  • 使用索引和切片来选择子集列或行

让我们看一个例子。假设我们有一个CSV文件,其中包含有关电影的信息,包括标题、年份、流派和运行时间。我们可以将文件作为数据帧读入,然后使用“head”函数查看前几行。

语法

df = pd.read_csv('movies.csv')
print(df.head())

这将输出数据帧的前5行。

输出

                      Title  Year      Genre   Runtime
0  The Shawshank Redemption  1994      Drama      142
1             The Godfather  1972      Crime      175
2    The Godfather: Part II  1974      Crime      202
3           The Dark Knight  2008     Action      152
4              12 Angry Men  1957      Drama       96

我们还可以检查数据帧的形状。

print(df.shape)

要查看数据帧的摘要统计信息,我们可以使用“describe”函数−

 print(df.describe())

这将输出以下内容−

输出

              Year     Runtime
count   250.000000  250.000000
mean   1984.356000  118.840000
std      24.012321   23.118059
min    1921.000000   69.000000
25%    1964.000000  100.000000
50%    1995.000000  116.000000
75%    2003.000000  131.000000
max    2016.000000  229.000000

最后,我们可以使用索引和切片来选择列或行的子集。例如,只选择标题和类型列——

例子

subset = df[['Title', 'Genre']]
print(subset.head())

输出

                     Title       Genre
0  The Shawshank Redemption      Drama
1             The Godfather      Crime
2    The Godfather: Part II      Crime
3           The Dark Knight     Action
4              12 Angry Men      Drama

操作数据框

除了简单探索数据之外,我们可能需要以各种方式操作它,例如排序、过滤、合并和透视。在这一子节中,我们将使用真实世界示例涵盖一些常见的数据框操作。

排序

要按一个或多个列对数据框进行排序,我们可以使用sort_values函数。例如,按年份降序排序电影数据框——

例子

sorted_df = df.sort_values('Year', ascending=False)
print(sorted_df.head())

这将输出按年份降序排列的数据框的前5行——

输出

                           Title  Year      Genre  Runtime
15                         Logan  2017     Action      137
127                 The Revenant  2015  Adventure      156
117                     Whiplash  2014      Drama      107
111  X-Men: Days of Future Past  2014     Action      132
95               The Lego Movie  2014  Animation      100

过滤

要根据一个或多个条件过滤数据框,我们可以使用布尔索引。例如,在电影数据框中选择仅为动作的电影——

例子

subset = df[df['Genre'] == 'Action']
print(subset.head())

这将输出数据框中前5个动作电影

输出

                         Title  Year   Genre  Runtime
3               The Dark Knight  2008  Action      152
6     The Silence of the Lambs  1991  Action      118
7                    Inception  2010  Action      148
16  Terminator 2: Judgment Day  1991  Action      137
20                Forrest Gump  1994  Action      142

合并

要将两个或更多数据框合并为单个数据框,我们可以使用merge函数。例如,假设我们有一个包含原始数据框中每部电影评分的第二个CSV文件。我们可以将此文件作为单独的数据框读取,然后基于一个共同的列(在本例中是电影的标题)将其与原始数据框合并——

例子

ratings_df = pd.read_csv('ratings.csv')
merged_df = pd.merge(df, ratings_df, on='Title')
print(merged_df.head())

这将输出合并的数据框,其中包含电影信息和评分信息

输出

                    Title    Year  Genre  Runtime  Rating
0   The Shawshank Redemption 1994   Drama     142      9.3
1     The Godfather  1972           Crime      175      9.2
2   The Godfather: Part II  1974    Crime     202      9.0
3           The Dark Knight  2008    Action    152      9.0
4              12 Angry Men  1957    Drama      96      8.9

透视

要透视数据框,我们可以使用pivot_table函数。例如,假设我们想通过类型查看电影的平均运行时间。我们可以透视原始电影数据框——

例子

pivot_df = pd.pivot_table(df, values='Runtime', columns='Genre', aggfunc='mean')
print(pivot_df)

输出

这将输出一个表格,显示按类型分类的电影的平均运行时间。

Genre        动作      冒险      动画       喜剧        犯罪   \
Runtime    126.304348  118.054054   98.250000  107.111111  128.666667

Genre         纪录片      剧情     家庭     奇幻     黑色电影   \
Runtime    85.333333  126.539326  111.666667  126.300000  105.000000

Genre       历史     恐怖     音乐     音乐剧      悬疑  \
Runtime   123.375  108.204545  131.133333  121.714286  114.200000

Genre      爱情     科幻   运动   惊悚   战争   西部  
Runtime    116.6  121.266667  129.428571  120.046875  134.125  117.833333  

将数据框写入CSV文件

最终,当我们操纵和分析数据框后,可能需要将其写回到CSV文件以备将来使用。可以使用“to_csv”函数完成此操作。

df.to_csv('new_file.csv', index=False)

在本例中,我们将数据框写入名为“new_file.csv”的新CSV文件中,使用“index=False”排除索引列。

结论

在这个技术文档中,我们介绍了使用Python中的CSV文件创建数据框的过程。我们首先定义了数据框和CSV文件是什么,然后探讨了如何读取CSV文件到数据框中,如何探索和操纵数据框,以及如何将数据框写回到CSV文件中。通过使用实际示例和代码片段,我们详细说明了每个子部分。通过掌握本文档中介绍的技术,您将成为熟练处理Python中数据框和CSV文件的专家。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程