python pandas 索引
时间: 2025-01-04 08:33:13 浏览: 6
### Python Pandas 索引使用方法
#### 创建 DataFrame 并设置索引
为了更好地理解如何处理索引,在创建 `DataFrame` 的时候可以选择指定列作为行标签即索引。如果未特别指明,默认情况下会自动生成整数类型的索引。
```python
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)
# 设置 City 列为索引
df.set_index('City', inplace=True)
print(df)
```
#### 访问带有多重索引的数据结构
对于具有复杂层次化索引的数据集,可以通过 `.loc[]`, `.iloc[]` 或者更高级的选择器来进行访问。特别是当面对多层索引(`MultiIndex`)时,`.xs()` 方法允许提取特定级别的子集而无需遍历整个表格。
```python
arrays = [['bar', 'bar', 'baz', 'baz'], ['one', 'two', 'one', 'two']]
index = pd.MultiIndex.from_arrays(arrays, names=('first', 'second'))
s = pd.Series([1.0, 2.0, 3.0, 4.0], index=index)
# 获取 first 层等于 bar 的所有元素
result_bar = s.xs('bar', level='first')
print(result_bar)
```
#### 对带有 MultiIndex 的数据框应用聚合操作
在拥有多个维度的情况下,可能希望基于某些级别上的唯一组合计算统计数据。这通常涉及到 `groupby()`, 结合其他函数如 `sum()`, `mean()`, 和 `size()` 来实现期望的结果。
```python
df_multi = df.copy()
df_multi.index = pd.MultiIndex.from_product([[‘East’, ‘West’], df_multi.index])
# 按照第一个层级分组求平均年龄
average_age_by_region = df_multi.groupby(level=0)['Age'].mean()
print(average_age_by_region)
```
#### 将分类变量转化为虚拟/指示变量
有时需要将类别型特征编码成数值形式以便于后续分析工作。此时可利用 `pd.get_dummies()` 函数轻松完成此任务[^2]。
```python
dummies_cities = pd.get_dummies(df.reset_index(), columns=['City'])
print(dummies_cities)
```
阅读全文