将Pandas数据帧索引保存到文件

时间:2016-06-06 17:04:01

标签: python numpy pandas

我试图将数据帧的索引保存到文件中。这是我尝试过的:

A)

np.savetxt("file_name", df.index.values)

返回:

TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e')

B)

df.index.values.tofile("file_name")

返回:

IOError: cannot write object arrays to a file in binary mode

C)

with open("file_name","w") as f:
    f.write("\n".join(df_1_indexes.values.tolist()))

有人可以解释为什么A)和B)失败了吗?我不知所措。

干杯

2 个答案:

答案 0 :(得分:6)

A)中的错误很可能是因为索引中有字符串或其他类型的objectnp.savetxt中的默认格式说明符似乎假设数据为float - 就像。我通过设置fmt='%s'解决了这个问题,尽管它可能不是一个可靠的解决方案。

B)使用IndexMultiIndex的一些基本示例,不会给我带来任何错误。您的错误可能是由于索引中特定类型的元素造成的。

请注意,只保存索引的方法更简单,更可靠。您可以将to_csvcolumns参数设置为空列表,这将禁止输出中的所有列:

df.to_csv('file_name', columns=[], header=False)

如果您的索引有一个名称,并且您希望该名称显示在输出中(类似于列名称的显示方式),请从上面的代码中删除header=False

答案 1 :(得分:1)

除了@root的答案外,如果您已经在保存df索引后删除了df,则可以执行以下操作:

saved_index=df.index
pd.Series(saved_index,index=saved_index).to_csv('file_name', header=False)