读取和写入具有多行多列索引的Pandas DataFrame

1 投票
1 回答
1800 浏览
提问于 2025-04-28 00:14

我有一个pandas的数据表,它的行和列都有多个索引。

行的索引名称是:(用户ID, 用户名)。列的索引名称是:(用户类型, 样本ID)。

这个数据表看起来是这样的。

In: user_frame.head(2)

Out:

        Sample_Type TV  TV  Radio TV
        Sample_ID   1   2   3     4
User_ID User_Name
1000001 Jim         0.1 0.3 0.5   0.9
1000001 Julie       0.2 0.9 0.1   0.5

我想把这个数据表保存到硬盘上。

user_frame.to_csv(fi_path,{write_args})

然后再把它读回来,确保行和列的多重索引都能保持不变。

user_frame_new=pd.read_csv(fi_path,{read_args})

我还没有找到正确的写入和读取参数,能够同时保持行和列的多重索引。

请问应该怎么做呢?

谢谢!

暂无标签

1 个回答

0

这里有一个例子:

idx = pd.MultiIndex.from_product([["A", "B"], [1, 2, 3]])
col = pd.MultiIndex.from_product([["X", "Y"], ["aa", "bb"]])
df = pd.DataFrame(np.random.randint(0, 100, size=(6, 4)), index=idx, columns=col)
df.index.names = "name1", "name2"
df.columns.names = "NAME1", "NAME2"

df.to_csv("tmp.csv")
df2 = pd.read_csv("tmp.csv", header=[0, 1], index_col=[0, 1])

撰写回答