[英]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
或者我需要在df
上to_csv
什么操作才能使其看起来像这样?
笔记。
在h1
, h2
, h3
, d1
, d2
或d3
上可能有重复的值。
k
在df_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.