📜  选择自定义索引 pandas - Python (1)

📅  最后修改于: 2023-12-03 15:12:21.944000             🧑  作者: Mango

选择自定义索引 pandas - Python

在 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 数据分析操作的基本内容。