繁体   English   中英

带有NaN而不是重复值的Python pandas数据框to_csv

[英]Python pandas dataframe to_csv with NaNs instead of repeated values

我有一个标题DataFrame df_h

df_h = pd.DataFrame({'k':[1,2],'h1':['a','d'],'h2':['b','e'],'h3':['c','f']})

    k  h1  h2  h3
0   1   a   b   c
2   2   d   e   f

以及一个详细的DataFrame df_d

df_d = pd.DataFrame({'k':[1,1,2,2],'d1':[10,11,12,13],'d2':[20,21,22,23],'d3':[30,31,32,33]})

    k  d1  d2  d3
0   1  10  20  30
1   1  11  21  31
2   2  12  22  32
3   2  13  23  33

然后我离开他们加入了df on k

df = df_h.merge(df_d, how='left', on='k')

    k  h1  h2  h3  d1  d2  d3
0   1   a   b   c  10  20  30
1   1   a   b   c  11  21  31
2   2   d   e   f  12  22  32
2   2   d   e   f  13  23  33

我想要to_csv ,但是我需要以这种方式结束它:

    k  h1  h2  h3  d1  d2  d3
0   1   a   b   c  10  20  30
1                  11  21  31
2   2   d   e   f  12  22  32
2                  13  23  33

没有重复的df_h行。

to_csv上有选项to_csv或者我需要在dfto_csv什么操作才能使其看起来像这样?

笔记。

h1h2h3d1d2d3上可能有重复的值。

kdf_h上不重复。

根据结果​​,可以使用pd.DataFrame.duplicated来应用掩码,并使用.loc访问器进行更新:

cols = ['k', 'h1', 'h2', 'h3']
df.loc[df.duplicated(cols), cols] = ''

#    k h1 h2 h3  d1  d2  d3
# 0  1  a  b  c  10  20  30
# 1              11  21  31
# 2  2  d  e  f  12  22  32
# 2              13  23  33

然后只需正常使用df.to_csv()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM