我试图将数据帧的索引保存到文件中。这是我尝试过的:
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)失败了吗?我不知所措。
干杯
答案 0 :(得分:6)
A)中的错误很可能是因为索引中有字符串或其他类型的object
。 np.savetxt
中的默认格式说明符似乎假设数据为float
- 就像。我通过设置fmt='%s'
解决了这个问题,尽管它可能不是一个可靠的解决方案。
B)使用Index
和MultiIndex
的一些基本示例,不会给我带来任何错误。您的错误可能是由于索引中特定类型的元素造成的。
请注意,只保存索引的方法更简单,更可靠。您可以将to_csv
的columns
参数设置为空列表,这将禁止输出中的所有列:
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)