Pandas是一个开源的数据分析库,提供了许多数据结构和数据处理功能。在此处,我们将详细讲解Pandas的数据结构,并说明如何创建Series和DataFrame对象,并介绍一些常用方法。
Pandas数据结构
Pandas提供了两种主要的数据结构,即Series和DataFrame。它们都基于NumPy数组构建,但提供了更多的功能和灵活性。
Series
Series是一维数组,并带有标签(即索引)。可以使用如下方式创建Series:
import pandas as pd
# 从列表创建Series
data = [1, 2, 3, 4, 5]
index = ['a', 'b', 'c', 'd', 'e']
s = pd.Series(data, index=index)
# 从字典创建Series
data = {'a': 1, 'b': 2, 'c': 3}
s = pd.Series(data)
上面代码创建了两个Series。第一个从列表创建,第二个从字典创建,使用字典创建时,键会自动成为Series的索引。
Series对象提供了许多有用的方法,在这里介绍其中几个。
# 获取Series的值
s.values
# 获取Series的索引
s.index
# 根据索引获取Series的值
s['a']
# 根据索引切片获取Series的子集
s['a':'c']
DataFrame
DataFrame是二维表格,每列可以有不同的数据类型(数值、字符串、布尔值等),并带有行标签(即索引)和列标签。可以使用如下方式创建DataFrame:
# 从字典创建DataFrame
data = {'name': ['Bob', 'Charlie', 'David'],
'age': [25, 30, 35]}
df = pd.DataFrame(data)
# 从列表创建DataFrame,指定列名和索引
data = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
index = ['a', 'b', 'c']
columns = ['A', 'B', 'C']
df = pd.DataFrame(data, index=index, columns=columns)
上面代码创建了两个DataFrame。第一个从字典创建,第二个从列表创建,并指定了行索引和列标签。
DataFrame对象也提供了许多有用的方法,在这里介绍其中几个。
# 获取DataFrame的数据(二维数组)
df.values
# 获取DataFrame的行索引(即行标签)
df.index
# 获取DataFrame的列标签
df.columns
# 根据列标签获取DataFrame的列
df['A']
# 根据行索引获取DataFrame的行
df.loc['a':'c']
创建Series和DataFrame对象
在上面,我们已经讲解了如何创建Series和DataFrame对象,这里提供一些更详细的示例。
创建Series
# 创建一个包含1-5的Series
s = pd.Series([1, 2, 3, 4, 5])
# 创建一个带有标签的Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
上面代码创建了两个Series,一个不带标签,一个带有标签。
创建DataFrame
# 创建一个包含多个列表的DataFrame
data = {'name': ['Bob', 'Charlie', 'David'],
'age': [25, 30, 35]}
df = pd.DataFrame(data)
# 创建一个从CSV文件中读取的DataFrame
df = pd.read_csv('data.csv')
# 创建一个从Excel文件中读取的DataFrame
df = pd.read_excel('data.xlsx')
上面代码创建了三个DataFrame,分别是从多个列表、CSV文件和Excel文件中读取的。
常用方法
在上面,我们已经讲解了许多常用的方法。这里再提供一些更详细的示例。
删除列
# 删除列
df = df.drop(columns=['age'])
上面代码删除了名为age的列。
筛选行
# 筛选出所有年龄大于30岁的人
df = df[df['age'] > 30]
上面代码筛选了出年龄大于30岁的行。
总结
在这篇文章中,我们详细讲解了Pandas的数据结构,并介绍了如何创建Series和DataFrame对象以及一些常用方法。Pandas提供了丰富的功能和灵活性,使得数据分析变得更加简单和高效。