如果我将多索引数据帧输出到 csv,为什么我的第一个索引会重复?
我的数据框:
In [1]: \
import numpy as np
import pandas as pd
df = pd.DataFrame({
'index1': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
'index2': [1, 2, 3, 4, 1, 2, 3, 4],
'column1': np.random.randint(2, size=8),
'column2': np.random.randint(2, size=8),
'column3': np.random.randint(2, size=8)
}).set_index(['index1', 'index2'])
Out[2]: \
print(df)
column1 column2 column3
index1 index2
A 1 1 1 1
2 0 1 1
3 1 0 1
4 0 0 0
B 1 0 1 0
2 1 1 0
3 0 0 0
4 1 1 1
以下是我将数据帧输出为 csv 文件时得到的结果。
输出(csv 文件):
column1 column2 column3
index1 index2
A 1
A 2
A 3
A 4
B 1
B 2
B 3
B 4
我想以与第一个代码片段中的数据框完全相同的格式输出 csv 文件。
最佳答案
第一个索引是重复的,因为那是数据在引擎盖下的样子,pandas 只是以这种方式格式化它以使其更容易阅读。当您调用“to_csv”时,将输出原始数据。要执行您想要的操作,您可以重置索引,然后将该列中的重复值替换为空白。
df.reset_index(inplace=True)
df.loc[df['index1'].duplicated(), 'index1'] = ''
df.to_csv('mycsv.csv', index=False)
关于python - Pandas 多索引到 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55050841/