Python3.5 Pandas模块之DataFrame用法实例分析

下面是详细的讲解“Python3.5Pandas模块之DataFrame用法实例分析”的完整攻略,包括示例说明:

什么是DataFrame?

DataFrame是Pandas中一种很常用的数据结构。它可以被看作是由许多Series对象合并成的二维表格,拥有行和列的索引。在数据科学领域,DataFrame是数据分析的常用工具之一。

DataFrame的创建

Pandas提供了多种创建DataFrame的方法,例如使用字典、嵌套列表、CSV文件等来创建DataFrame。

使用字典创建DataFrame

我们可以使用字典创建DataFrame,其中字典的键表示列名,字典的值是一个列表,表示一列的数据。示例如下:

import pandas as pd

data = {'name': ['John', 'Lucy', 'David'], 
        'age': [24, 25, 26], 
        'gender': ['male', 'female', 'male']}

df = pd.DataFrame(data)

这段代码创建了一个DataFrame,包含三列数据:nameagegender,每列的数据是一个列表中的元素。

使用嵌套列表创建DataFrame

除了使用字典,我们还可以使用嵌套列表来创建DataFrame。示例如下:

data = [['Tom', 25, 'male'], ['Anne', 23, 'female'], ['Bob', 24, 'male']]
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])

这段代码创建了一个DataFrame,和之前使用字典创建的DataFrame有些相似,但是这里是用嵌套列表创建的,并且自己指定了列名。

DataFrame的基本操作

查看DataFrame

我们可以使用head()函数查看DataFrame的前若干行数据,也可以使用tail()函数查看DataFrame的后若干行数据。示例如下:

print(df.head())   # 查看前5行数据
print(df.tail(3))  # 查看后3行数据

索引DataFrame

Pandas中提供了多种索引DataFrame的方法。我们可以使用loc[]iloc[]等函数指定行列的索引来进行定位。

具体来说,loc[]通过行或列的标签索引,而iloc[]通过行或列的数字索引。示例如下:

# 根据行列标签索引定位元素
print(df.loc[1, 'name'])
print(df.iloc[0, 2])

# 根据行列数字索引定位元素
print(df.loc[1, 'name'])
print(df.iloc[0, 2])

在以上示例中,第一行输出的是第2行第1列(即姓名)的数据,第二行输出的是第1行第3列(即性别)的数据。

修改DataFrame

我们可以通过修改元素、增加列或行等方式来修改DataFrame。

修改元素

我们可以使用at[]iat[]函数来修改DataFrame的元素。其中,at[]通过行列的标签索引,而iat[]通过行列的数字索引。示例如下:

df.at[1, 'name'] = 'Alice'  # 修改第2行第1列(即姓名)的数据
df.iat[0, 2] = 'unknown'    # 修改第1行第3列(即性别)的数据

在以上示例中,我们将第2行第1列的姓名数据修改成了'Alice',将第1行第3列的性别数据修改成了'unknown'。

增加列或行

我们可以通过新增一个Series来增加一列数据,示例如下:

df['height'] = pd.Series([168, 175, 172])

这段代码增加了一个名为height的列,其中的数据是由一个Series对象提供的。使用head()函数查看结果如下:

print(df.head())

输出结果如下:

    name  age  gender  height
0    Tom   25    male     168
1  Alice   23  female     175
2    Bob   24    male     172

增加行数据可以使用append()函数。例如,我们可以新增一个字典来表示一行数据,并利用append()函数将该行数据添加到DataFrame中。示例如下:

new_data = {'name': 'Cindy', 'age': 22, 'gender': 'female', 'height': 170}
df = df.append(new_data, ignore_index=True)

这段代码新增了一行数据,然后使用ignore_index=True,表示重新调整了行索引。使用head()函数查看结果如下:

print(df.head())

输出结果如下:

    name  age  gender  height
0    Tom   25    male     168
1  Alice   23  female     175
2    Bob   24    male     172
3  Cindy   22  female     170

示例说明

示例1:电影数据分析

我们可以利用Pandas中的许多函数和方法对数据进行分析。例如,我们可以从CSV文件中读取电影数据,然后分析每个电影的票房收入、导演等信息。

import pandas as pd

# 读取电影数据CSV文件
df = pd.read_csv('movies.csv', encoding='utf-8')

# 排序
df = df.sort_values(by=['box_office'], ascending=False)

# 输出前10部票房最高的电影
print(df[['title', 'director', 'box_office']].head(10))

这段代码首先读取了一个电影数据的CSV文件,然后按照票房收入从高到低排序,最后输出前10部票房最高的电影的标题、导演和票房收入信息。

示例2:股票数据分析

我们也可以从网络上获取股票数据进行分析。例如,我们可以利用Pandas的DataFrame对象从tushare上获取某只股票的历史数据并进行分析。

import pandas as pd
import tushare as ts

# 获取股票数据
df = ts.get_hist_data('600519', start='2020-01-01', end='2020-12-31')

# 输出最近30天的数据
print(df.tail(30))

这段代码首先调用tushare库获取某只股票的历史数据,然后输出最近30天的数据。

这是两个基本的示例,Pandas的能力远不止这些,更多高级的使用,可以结合具体场景进行深入研究。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3.5 Pandas模块之DataFrame用法实例分析 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • NodeJS 中Stream 的基本使用

    NodeJS中Stream是一种非常重要的数据处理工具,它可以帮助我们高效地处理大量数据,在文件读写、网络传输等多个场景下都有广泛应用。下面我们来详细讲解NodeJS中Stream的基本使用。 什么是Stream 流(Stream)是Node.js中处理流式数据的一个抽象接口。Stream有四种类型:Readable、Writable、Duplex、Tran…

    python 2023年5月14日
    00
  • 在Pandas数据框架中用零替换负数

    在Pandas数据框架中,用零替换负数可以使用DataFrame.where方法。具体步骤如下: 导入Pandas库并读取数据,获得一个数据框架。 python import pandas as pd df = pd.read_csv(‘data.csv’) 使用where方法将所有负数替换为零。 python df.where(df >= 0, 0,…

    python-answer 2023年3月27日
    00
  • python向xls写入数据(包括合并,边框,对齐,列宽)

    下面就是关于Python向xls写入数据(包括合并,边框,对齐,列宽)的完整攻略。 一、需求背景 我们在日常的工作和生活中,经常需要将数据写入Excel文档,对于Python来说,这也是比较常见的操作。但是,单纯地将数据写入Excel文档显然是无法满足工作的需求的,因为很多情况下,我们还需要将数据进行处理,比如合并单元格、设置边框样式、设置对齐方式和设置列宽…

    python 2023年5月14日
    00
  • 利用pandas向一个csv文件追加写入数据的实现示例

    向一个已有的 CSV 文件追加数据是一种非常常见的数据处理场景。通过 Python 中的 Pandas 库,可以很容易地实现这个需求。 下面是实现这个需求的步骤: 步骤一:导入 Pandas 库 首先,需要导入 Pandas 库: import pandas as pd 步骤二:读取已有的 CSV 文件 接下来,需要读取已有的 CSV 文件。假设需要追加的 …

    python 2023年5月14日
    00
  • Pandas处理时间序列数据操作详解

    当我们在处理数据时,其中常常会涉及到时间序列数据。而Pandas是Python中非常强大的数据分析工具,也非常适合处理时间序列数据。接下来将为你详细讲解Pandas处理时间序列数据操作的完整攻略。 一、导入Pandas和时间序列数据 在使用Pandas进行时间序列数据处理之前,我们需要先导入Pandas库。可以使用以下代码实现: import pandas …

    python 2023年5月14日
    00
  • 解决pycharm 误删掉项目文件的处理方法

    当使用PyCharm开发Python项目时,有时会误删掉项目文件,这时需要进行一些处理,以恢复误删文件,下面详细介绍“解决pycharm误删掉项目文件的处理方法”的完整攻略: 确认文件是否在回收站 PyCharm删除的文件会被默认移动到系统的回收站中,在回收站中可通过恢复操作来找回被删除的文件。前提是在删除文件后没有进行过系统清理,则可以在回收站中找回删除的…

    python 2023年5月14日
    00
  • 从多索引Pandas数据框架中删除特定的行

    想要从多索引Pandas数据框架中删除特定的行,可以使用drop()方法。下面是详细的步骤和实例说明: 确定要删除的行的索引。 使用drop()方法,将要删除的索引传递给该方法,指定axis参数为0,表示删除行。 如果是多索引DataFrame,需要指定要删除的行在哪一级索引上。 下面通过一个实例来演示如何从多索引Pandas数据框架中删除特定的行。假设我们…

    python-answer 2023年3月27日
    00
  • pandas 数据类型转换的实现

    当我们在处理数据时,经常会遇到相同数据类型不一致的问题,这时候就需要进行数据类型的转换。pandas提供了丰富的数据类型转换方法来解决这个问题。 一、基础方法 pandas中的数据类型转换基本方法是astype()。用法如下: df[‘column_name’] = df[‘column_name’].astype(‘new_data_type’) 这里的c…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部