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日

相关文章

  • 在Pandas中根据行频对数据框进行排序

    在Pandas中,可以根据某一列或多列的值对数据框进行排序。不过有时候我们需要根据行频(行出现的次数)对数据框进行排序。这篇文章将详细介绍这个过程,并提供实例说明。 1. 读取数据 首先,我们需要读取一些数据,以便后面的操作。这里我们可以使用Pandas自带的dataframe,如下所示: import pandas as pd from collectio…

    python-answer 2023年3月27日
    00
  • 在Pandas数据框架中用零替换NaN值

    在Pandas数据框架中,NaN(Not a Number)值通常表示缺少数据或无效数据,需要使用一些方法来进行填充。本文将介绍如何在Pandas数据框架中用零替换NaN值。 步骤一:创建数据框架 首先,让我们创建一个简单的数据框架。在这个例子中,我们将使用一个包含NaN值的数据框架: import pandas as pd import numpy as …

    python-answer 2023年3月27日
    00
  • 聊聊python dropna()和notnull()的用法区别

    聊聊Python dropna()和notnull()的用法区别 引言 在使用Pandas进行数据处理和分析时,我们常常需要过滤掉数据中带有缺失值的行或列。在Pandas中,我们通常会使用 dropna() 和 notnull() 这两个方法来实现这个目的。本篇文章将会讲解这两个方法的用法,并且对它们的区别做出详细的解析。 dropna()方法 什么是dro…

    python 2023年6月13日
    00
  • 加入Pandas数据框架,通过子串匹配

    加入Pandas数据框架并进行子串匹配包括以下几个步骤: 导入Pandas库:在Python中使用Pandas进行数据处理时,需要先导入Pandas库。 import pandas as pd 创建数据框架:将数据读入Pandas数据框架中。可以从CSV或Excel文件中读入或直接手动创建。 # 从CSV文件中读入数据 df = pd.read_csv(‘d…

    python-answer 2023年3月27日
    00
  • 解决一个pandas执行模糊查询sql的坑

    当使用Pandas进行SQL查询时,我们可能会遇到Pandas执行模糊查询SQL的坑。具体来说,Pandas使用“like”模糊查询时,使用%通配符,并添加引号时会出现报错的情况。下面是解决这个问题的完整攻略: 1. 背景分析 当我们要在Pandas中使用“like”模糊查询时,可以使用以下格式: df[df[‘column’].str.contains(‘…

    python 2023年5月14日
    00
  • 将大的Pandas数据框分割成小的数据框列表

    要将大的Pandas数据框分割成小的数据框列表,可以使用Pandas的groupby函数和循环迭代的方式进行操作。 具体步骤如下: 1.首先导入需要使用的库和数据集 import pandas as pd import numpy as np # 导入数据集,本例使用Iris数据集 iris = pd.read_csv(‘https://archive.ic…

    python-answer 2023年3月27日
    00
  • Python 将逐点数据转换成OHLC(开盘-高点-收盘)数据

    Python可以通过一些简单的代码将逐点数据转换成OHLC(开盘-高点-收盘)格式的数据。 OHLC数据是一种常用的股票数据表示方法,即用一组数据来描述开盘价(open)、最高价(high)、最低价(low)、收盘价(close)和交易量(volume)等信息。OHLC数据通常用于股票交易和期货交易等金融领域的数据分析和建模。 下面是一个简单的Python代…

    python-answer 2023年3月27日
    00
  • Python如何读取MySQL数据库表数据

    Python与MySQL数据库的连接通常使用Python的mysql-connector模块。mysql-connector是Python的MySQL官方数据库驱动程序,可以使用pip等方式安装。 读取MySQL数据库表数据的具体步骤如下: 导入库并建立连接 import mysql.connector mydb = mysql.connector.conn…

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