从列表创建Pandas DataFrame
Pandas是Python的一个数据分析库,它提供了DataFrame和Series等高效、灵活的数据结构。DataFrame是一个二维标签数据结构,类似于Excel表格。在Pandas中,DataFrame可以从多种数据来源中创建,其中最常见的方式是从列表中创建DataFrame。本文将简单介绍如何从列表创建Pandas DataFrame。
创建一个简单的列表
首先,我们来创建一个简单的列表,包含姓名、年龄和性别三个字段:
mylist = [['Alice', 18, 'Female'], ['Bob', 22, 'Male'], ['Charlie', 25, 'Male']]
这个列表中每个元素都是一个内部包含三个字段的列表。
导入Pandas库
接下来,我们需要导入Pandas库,才能使用其中的DataFrame数据结构。在Python中,使用import
命令导入库:
import pandas as pd
这里我们将Pandas库命名为pd
,这是Pandas约定俗成的命名方式。
从列表创建DataFrame
有了数据和库之后,我们就可以创建DataFrame了。在Pandas中,可以使用pd.DataFrame()
函数来创建DataFrame,该函数的参数可以是多种数据类型,包括列表、字典、ndarray等。在本文中,我们只关注如何从列表中创建DataFrame。
df = pd.DataFrame(mylist, columns=['Name', 'Age', 'Gender'])
上面这行代码创建了一个名为df
的DataFrame,该DataFrame的列名为Name
、Age
和Gender
,数据来自mylist
列表。需要注意的是,列名是以列表形式传入的,与数据列表的结构相对应。
查看DataFrame
一般地,我们需要查看所创建的DataFrame,以确认数据是否正确。Pandas提供了几个函数来实现这一目的:
df.head()
:查看DataFrame前几行数据,默认为前5行。df.tail()
:查看DataFrame后几行数据,默认为后5行。df.info()
:查看DataFrame的基本信息,包括每列的名称、非空数、数据类型等。df.describe()
:查看DataFrame的描述性统计信息,包括每列的平均数、标准差、最小值、最大值等。
执行下面的代码,看看我们创建的DataFrame长什么样吧:
print(df.head())
print(df.tail())
print(df.info())
print(df.describe())
结果展示
Name Age Gender
0 Alice 18 Female
1 Bob 22 Male
2 Charlie 25 Male
Name Age Gender
0 Alice 18 F
1 George 21 M
2 Michael 20 M
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Name 3 non-null object
1 Age 3 non-null int64
2 Gender 3 non-null object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
None
Age
count 3.000000
mean 21.666667
std 3.055050
min 18.000000
25% 20.000000
50% 22.000000
75% 23.500000
max 25.000000
结果包括了所创建DataFrame的前后3行数据、基本信息以及描述性统计信息。
修改DataFrame
在Pandas中,DataFrame可以很方便地进行增删改查等操作。我们来看一下如何修改DataFrame中的数据。
df.loc[0, 'Gender'] = 'F'
df.loc[1:, 'Age'] = [21, 20]
第一行代码将第0行数据的Gender
字段由Female
修改为F
;第二行代码将第1行和第2行数据的Age
字段分别修改为21
和20
。需要注意的是,使用loc
属性能够快速定位DataFrame某行某列的值。
删除DataFrame
除了修改数据,我们还可以删除不需要的行列。Pandas提供了多种方法来实现删除操作。
df.drop([2], axis=0, inplace=True)
df.drop(['Age'], axis=1, inplace=True)
第一行代码删除了第2行数据;第二行代码删除了Age
列。其中,axis=0
表示沿着行的方向进行删除,axis=1
表示沿着列的方向进行删除。inplace=True
表示直接修改原DataFrame。
结论
从列表创建DataFrame是Pandas中最常见的一种方式。本文介绍了如何从多层嵌套的列表中创建DataFrame,并通过实例讲解了如何查看、修改和删除DataFrame。Pandas在数据处理和分析方面功能强大,是Python中不可或缺的一个重要库。开发者可以根据实际需要,熟练掌握Pandas的使用方法,提高数据处理效率。