保存PandasDataFrame而不重复索引

0s7z1bwu  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(128)

我想设置一个 Dataframe 的2列作为它的索引。但是,我不希望它在每一行都重复。
例如,我有一个 Dataframe df

Object  Size   Color Ornament
0      A     1     red      yes
1      A     3     red      yes
2      A     4     red       no
3      B     1  yellow      yes
4      B     3  yellow      yes
5      B     4  yellow       no
6      C     1   green       no
7      C     3   green       no
8      C     4   green      yes

我想将索引设置为 ObjectColor,所以我执行df = df.set_index(['Object', 'Color']),在输出中我得到:

Size Ornament
Object Color                
A      red        1      yes
       red        3      yes
       red        4       no
B      yellow     1      yes
       yellow     3      yes
       yellow     4       no
C      green      1       no
       green      3       no
       green      4      yes

然而,使用df.to_csv('file.csv')保存文件后,我得到的文件如下:

我怎样才能保存文件像在控制台的输出?谢谢.

cvxl0en2

cvxl0en21#

虽然这可能不是一个好主意(这将使CSV包含丢失的数据),但您可以用途:

cols = ['Object'] # list of columns for which to "hide" the duplicates

(df.assign(**{c: df[c].mask(df[c].duplicated(), '')
              for c in cols})
   .to_csv('file.csv', index=False)
)

输出CSV:

Object,Size,Color,Ornament
A,1,red,yes
,3,red,yes
,4,red,no
B,1,yellow,yes
,3,yellow,yes
,4,yellow,no
C,1,green,no
,3,green,no
,4,green,yes

相关问题