📅  最后修改于: 2023-12-03 15:12:21.944000             🧑  作者: Mango
在 Pandas 中,Index 是一种将标签分配给数据的数据结构。Index 可以帮助我们在 Pandas 中获取和操作数据,也可以作为 DataFrame 和 Series 的行列索引。
Pandas 默认使用 RangeIndex 作为索引,但是也可以使用自定义索引。自定义索引可以是数字、字符串等,也可以使用多级索引。
我们可以使用 Pandas 中的 Index
对象来创建自定义索引。
import pandas as pd
# 创建一维索引
index1 = pd.Index(['a', 'b', 'c', 'd'])
print(index1)
# 创建二维索引
index2 = pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1), ('b', 2)])
print(index2)
输出结果:
Index(['a', 'b', 'c', 'd'], dtype='object')
MultiIndex([('a', 1),
('a', 2),
('b', 1),
('b', 2)],
)
使用自定义索引时,可以通过 index
参数来指定:
import pandas as pd
# 创建 Series 数据,使用自定义索引
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s)
# 创建 DataFrame 数据,使用自定义索引
df = pd.DataFrame(data={'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=['a', 'b', 'c', 'd'])
print(df)
# 创建 DataFrame 数据,使用二维索引
df2 = pd.DataFrame(data={'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1), ('b', 2)]))
print(df2)
输出结果:
a 1
b 2
c 3
d 4
dtype: int64
A B
a 1 5
b 2 6
c 3 7
d 4 8
A B
a 1 1 5
2 2 6
b 1 3 7
2 4 8
使用自定义索引后,我们可以通过索引操作访问数据。
import pandas as pd
s = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
print(s['a']) # 输出 1
print(s[['a', 'c']]) # 输出 a 和 c 对应的值
df = pd.DataFrame(data={'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=['a', 'b', 'c', 'd'])
print(df.loc[['a', 'c'], 'A']) # 输出 a 和 c 行的 A 列数据
df2 = pd.DataFrame(data={'A': [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=pd.MultiIndex.from_tuples([('a', 1), ('a', 2), ('b', 1), ('b', 2)]))
print(df2.loc[('a', 1), 'A']) # 输出 (a, 1) 行的 A 列数据
输出结果:
1
a 1
c 3
dtype: int64
a 1
c 3
Name: A, dtype: int64
1
以上就是使用自定义索引进行 Pandas 数据分析操作的基本内容。