1、Series
- 基本属性
values:返回底层的 NumPy 数组,包含 Series 中的数据。
index:返回索引对象,提供标签信息,用于标识每个数据点。
dtype:返回数据的数据类型,表示 Series 中存储的元素类型。
shape:返回数据的形状,对于一维数据,返回的是单元素元组。
size:返回数据的元素个数,表示 Series 中包含的数据点的数量。
nbytes:返回数据的字节大小,即存储数据所需的字节数。
ndim:返回数据的维度,对于 Series 来说,始终为1。
name:返回或设置 Series 的名称,可以用于标识 Series 对象的用途或含义。
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个 Series 对象
s = pd.Series([1, 2, 3, 4, 5], name='my_series')
print(s.values) # [1 2 3 4 5]
print(s.index) # RangeIndex(start=0, stop=5, step=1)
print(s.dtype) # int64
print(s.shape) # (5,)
print(s.size) # 5
print(s.nbytes) # 40
print(s.ndim) # 1
print(s.name) # my_series
- 创建
import pandas as pd # 导入 Pandas 库并使用别名 pd
import numpy as np # 导入 NumPy 库并使用别名 np
# 从列表创建 Series
s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
# dtype: int64
# 从字典创建 Series
s2 = pd.Series({'a': 1, 'b': 2, 'c': 3})
print(s2)
# a 1
# b 2
# c 3
# dtype: int64
# 从 Numpy 数组创建 Series
s3 = pd.Series(np.array([1, 2, 3, 4, 5]))
print(s3)
# 0 1
# 1 2
# 2 3
# 3 4
# 4 5
# dtype: int32
# 从字典和标签列表创建 Series
s4 = pd.Series({'a': 1, 'b': 2, 'c': 3}, index=['a', 'b', 'c'])
print(s4)
# a 1
# b 2
# c 3
# dtype: int64
- 取值
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个 Series 对象
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
# 通过索引取值
value = s['b']
print(value) # 2
# 通过切片取值
slice_values = s['a':'c']
print(slice_values)
# a 1
# b 2
# c 3
# dtype: int64
# 取第二行
row_value = s.iloc[1]
print(row_value) # 2
2、DataFrame
- 基本属性
values:返回底层的 NumPy 数组,包含 DataFrame 中的数据。
columns:返回列名,表示 DataFrame 中每列的标签。
index:返回索引对象,提供标签信息,用于标识每行数据。
shape:返回数据的形状,是一个元组,表示DataFrame的行数和列数。
dtypes:返回每列的数据类型,表示 DataFrame 中存储的元素类型。
size:返回数据的元素个数,表示 DataFrame 中包含的数据点的总数量。
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个 DataFrame 对象
data = {'name': ['Tom', 'Nick', 'John'], 'Age': [20, 21, 19]}
df = pd.DataFrame(data)
print(df.columns) # Index(['name', 'Age'], dtype='object')
print(df.index) # RangeIndex(start=0, stop=3, step=1)
print(df.values)
# [['Tom' 20]
# ['Nick' 21]
# ['John' 19]]
print(df.shape) # (3, 2)
print(df.dtypes)
# name object
# Age int64
# dtype: object
print(df.size) # 6
- 创建
import pandas as pd # 导入 Pandas 库并使用别名 pd
import numpy as np # 导入 NumPy 库并使用别名 np
# 创建一个字典
data = {'name': ['Tom', 'Nick', 'John', 'Tom'], 'Age': [20, 21, 19, 18]}
# 从字典创建 DataFrame
df = pd.DataFrame(data)
print(df)
# name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
# 3 Tom 18
# 创建一个列表
data = [['Tom', 20], ['Nick', 21], ['John', 19], ['Tom', 18]]
# 从列表创建 DataFrame,指定列为'name'和'Age'
df = pd.DataFrame(data, columns=['name', 'Age'])
print(df)
# name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
# 3 Tom 18
# 创建一个二维数组
data = np.array([['Tom', 20], ['Nick', 21], ['John', 19], ['Tom', 18]])
# 从二维数组创建 DataFrame,指定列为'name'和'Age'
df = pd.DataFrame(data, columns=['name', 'Age'])
print(df)
# name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
# 3 Tom 18
# 创建一个 DataFrame,然后使用该 DataFrame 创建另一个 DataFrame
df1 = pd.DataFrame({'name': ['Tom', 'Nick', 'John'], 'Age': [20, 21, 19]})
df2 = pd.DataFrame(df1['name'], columns=['name']) # 使用 df1 的一个列创建新的 DataFrame
print(df2)
# name
# 0 Tom
# 1 Nick
# 2 John
# 添加一行
new_row = {'name': 'Alex', 'Age': 22}
# 使用 concat 方法将新行添加到 DataFrame,ignore_index=True 用于重置索引
df = pd.concat([df, pd.DataFrame([new_row])], ignore_index=True)
print(df)
# name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
# 3 Tom 18
# 4 Alex 22
- 取值
import pandas as pd # 导入 Pandas 库并使用别名 pd
# 创建一个 DataFrame
data = {'Name': ['Tom', 'Nick', 'John', 'Peter'],'Age': [20, 21, 19, 18],'Score': [85, 80, 90, 88]}
df = pd.DataFrame(data)
# 通过列标签取值
# 选取单列
print(df['Name'])
# 0 Tom
# 1 Nick
# 2 John
# 3 Peter
# Name: Name, dtype: object
# 选取多列
print(df[['Name', 'Age']])
# Name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
# 3 Peter 18
# 通过标签索引取值
# 设置行标签并选取行
df.index = ['Student1', 'Student2', 'Student3', 'Student4']
print(df.loc['Student1'])
# Name Tom
# Age 20
# Score 85
# Name: Student1, dtype: object
# 通过位置取值
# 选取第一行(索引为0)
print(df.iloc[0])
# Name Tom
# Age 20
# Score 85
# Name: Student1, dtype: object
# 使用布尔索引取值
# 选取年龄大于20的行
print(df[df['Age'] > 20])
# Name Age Score
# Student2 Nick 21 80
- 修改 index、columns
import pandas as pd # 导入 Pandas 库并使用别名 pd
data = {'name': ['Tom', 'Nick', 'John'], 'Age': [20, 21, 19]}
df = pd.DataFrame(data)
print(df)
# name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
df.index = ['name', 'Age', 'height']
df.columns = ['Name', 'Age']
print(df)
# Name Age
# name Tom 20
# Age Nick 21
# height John 19
- 筛选
import pandas as pd # 导入 Pandas 库并使用别名 pd
import numpy as np # 导入 NumPy 库并使用别名 np
# 创建一个字典
data = {'name': ['Tom', 'Nick', 'John', 'Tom'], 'Age': [20, 21, 19, 18]}
# 从字典创建 DataFrame
df = pd.DataFrame(data)
print(df)
# name Age
# 0 Tom 20
# 1 Nick 21
# 2 John 19
# 3 Tom 18
# 根据条件筛选数据
filtered_df = df[df['Age'] > 20]
print(filtered_df)
# name Age
# 1 Nick 21