pandas多指数到CSV文件



如果我将多index dataframe输出到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)

最新更新