下面是详细的讲解“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,包含三列数据:name
、age
、gender
,每列的数据是一个列表中的元素。
使用嵌套列表创建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技术站