我正在尝试使用pandas(对我来说是新来的)将类似的CSV行合并/合并为单行,但似乎无法弄清楚。如果其他Python解决方案更好/更容易,则欢迎他们使用。
关于使用熊猫进行合并/合并的文章很多,但是我看到的是在合并行时对值进行求和或合并,而不是在合并时将null替换为值。我尝试使用df.drop_duplicates,但是这些行并不是真正的重复项,因此它什么也没做。
CSV格式:
col1 col2 col3 col4 col5 col6
A B D 6 null null
A B E 8 null null
A B F 10 null null
A B D null 20 null
A B E null 22 null
A B F null 24 null
A B D null null 44
A B E null null 46
A B F null null 48
A B G null null 50
A C D 6 null null
A C E 8 null null
A C F 10 null null
A C D null 20 null
A C E null 22 null
A C F null 24 null
A C D null null 44
A C E null null 46
A C F null null 48
H I D 12 null null
H I J 14 null null
H I K 16 null null
H I D null 26 null
H I J null 28 null
H I K null 30 null
H I D null null 52
H I J null null 54
H I K null null 56
预期/需要的输出:
col1 col2 col3 col4 col5 col6
A B D 6 20 44
A B D 8 22 46
A B D 10 24 48
A B G null null 50
A C D 6 20 44
A C D 8 22 46
A C D 10 24 48
H I D 12 26 52
H I J 14 28 54
H I K 16 30 56
答案 0 :(得分:1)
您可以使用first
df=df.groupby(['col1','col2','col3']).first().reset_index()
df
col1 col2 col3 col4 col5 col6
0 A B D 6.0 20.0 44.0
1 A B E 8.0 22.0 46.0
2 A B F 10.0 24.0 48.0
3 A B G NaN NaN 50.0
4 A C D 6.0 20.0 44.0
5 A C E 8.0 22.0 46.0
6 A C F 10.0 24.0 48.0
7 H I D 12.0 26.0 52.0
8 H I J 14.0 28.0 54.0
9 H I K 16.0 30.0 56.0