如何将行与空列合并

2024-09-27 04:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用pandas(对我来说是新的)将类似的CSV行合并成一行,但似乎无法理解。如果其他python解决方案更好/更简单的话,我也愿意使用它们。你知道吗

关于使用pandas组合/合并的帖子有很多,但我看到的是在合并行时求和或组合值,而不是在合并时用值替换null。我试过用df.drop\u副本但是行并不是真正的重复,所以它没有做任何事情。你知道吗

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

Tags: csvpandasdf解决方案null帖子dropcol2
2条回答

你可以用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

相关问题 更多 >

    热门问题