如果我将多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)