Pandas创建联合索引并进行数据读取

一、创建联合索引

步骤详解

  1. 读取 CSV 文件:首先读取 CSV 文件,并将第一列设置为行索引。
  2. 提取列索引:提取 DataFrame 的列索引。
  3. 创建多级索引:使用 pd.MultiIndex.from_product 创建多级索引。
  4. 重塑 DataFrame:将 DataFrame 的值转换为一维数组,并使用 pd.Series 和 unstack 方法重新构建 DataFrame。

示例代码

假设数据存储在一个 CSV 文件中,文件名为 table.csv

import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('table.csv', index_col=0)

# 提取列索引
column_index = df.columns

# 提取行索引
row_index = df.index

# 创建多级索引
multi_index = pd.MultiIndex.from_product([row_index, column_index], names=['Row', 'Column'])

# 重塑 DataFrame
df_values = df.values.flatten()  # 将 DataFrame 转换为一维数组
df_series = pd.Series(df_values, index=multi_index)

# 重新构建 DataFrame
df_final = df_series.unstack(level=-1)

# 显示 DataFrame
print(df_final)

二、读取特定单元格的数据

可以使用 .loc.iloc 方法来访问特定单元格的数据。

使用 .loc 方法

.loc 方法基于标签进行索引,适用于带有明确标签的 DataFrame。

import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('table.csv', index_col=0)

# 使用 .loc 方法读取 B 列和 3 行的数据
value = df.loc[3, 'B']

print(value)  # 输出应该是 17

使用 .iloc 方法

.iloc 方法基于位置进行索引,适用于基于位置的索引。

import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('table.csv', index_col=0)

# 使用 .iloc 方法读取 B 列和 3 行的数据
# 注意:iloc 是基于 0 索引的,所以第三行是 2,第二列是 1
value = df.iloc[2, 1]

print(value)  # 输出应该是 17

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值