📜  python中的数据框(1)

📅  最后修改于: 2023-12-03 14:46:40.868000             🧑  作者: Mango

Python中的数据框

什么是数据框

数据框(dataframe)是一个二维的数据结构,它将数据以表格的形式显示,类似于excel中的工作表。数据框由行和列组成,每一列可以有不同的数据类型,例如数字、字符串、布尔、日期等等,而每一行的数据类型必须保持一致。

如何创建一个数据框

Python有许多可以创建数据框的方法,其中最常用的就是使用pandas库中的DataFrame()函数。下面是一个使用字典创建数据框的例子。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 
        'age': [25, 32, 18, 47], 
        'score': [87.5, 90.0, 61.5, 78.0]}

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

输出:

       name  age  score
0     Alice   25   87.5
1       Bob   32   90.0
2   Charlie   18   61.5
3     David   47   78.0

在上面的例子中,我们使用一个字典--data来创建一个数据框。字典中的键为列名,每个键对应的值为该列的数据。通过pd.DataFrame(data)可以实现以字典data创建一个数据框,并赋值给变量df。

如何对数据框进行操作

数据框除了可以被创建以外,我们还需要知道如何对数据框进行操作。下面是一些最常用的数据框操作:

访问数据框中的元素

通过列名访问数据框中的一个列的数据,可以使用 df['column_name']。例如,下面的例子可以得到数据框中的 name 列:

df['name']

输出:

0      Alice
1        Bob
2    Charlie
3      David
Name: name, dtype: object

通过 df.iloc[row_index, column_index] 访问数据框中的指定行和列,例如:df.iloc[0,0] 可以得到元素'Allice'。

数据框中的行与列

数据框中的列可以通过列名进行访问,而数据框中的行可以通过索引值访问。例如,下面的例子取得前两行数据:

df.head(2)

输出:

    name  age  score
0  Alice   25   87.5
1    Bob   32   90.0

如果希望取得最后两行数据,可以使用 df.tail(2) 函数。

通过 df.shape 查看数据框的维度,例如 df.shape[0]df.shape[1] 分别返回数据框的行数和列数。

对数据框进行过滤

数据框的某列满足条件时,可以使用布尔索引进行过滤。例如,下面的例子可以得到数据框中年龄大于30岁的人员:

df[df['age'] > 30]

输出:

    name  age  score
1    Bob   32   90.0
3  David   47   78.0
对数据框进行排序

可以使用 sort_values() 函数对数据框进行排序。例如,下面的例子对数据框中的 score 列进行升序排序:

df.sort_values('score')

输出:

      name  age  score
2  Charlie   18   61.5
3    David   47   78.0
0    Alice   25   87.5
1      Bob   32   90.0
对数据框进行合并

可以使用 merge() 函数将两个数据框进行合并。例如,下面的例子中有两个数据框 df1 和 df2,它们通过列 name 进行合并:

df1 = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David'], 
                    'age': [25, 32, 18, 47], 
                    'score': [87.5, 90.0, 61.5, 78.0]})

df2 = pd.DataFrame({'name': ['Bob', 'Charlie', 'David', 'Ester'], 
                    'city': ['Chicago', 'New York', 'San Francisco', 'Los Angeles'], 
                    'postcode': ['12345', '23456', '34567', '45678']})

pd.merge(df1, df2, on='name')

输出:

      name  age  score           city postcode
0    Alice   25   87.5            NaN      NaN
1      Bob   32   90.0        Chicago    12345
2  Charlie   18   61.5       New York    23456
3    David   47   78.0  San Francisco    34567

在上面的例子中,我们将两个数据框 df1 和 df2 合并成了一个新的数据框。这里需要注意的是,在两个数据框中都存在的列 name 是用来实现两个数据框之间匹配的。

小结

本文介绍了Python中的数据框,涵盖了数据框的定义和如何创建和操作数据框等内容。了解和熟悉数据框的操作,对于数据分析和处理是非常有帮助的。