合并具有相同索引的行

时间:2020-08-17 05:48:56

标签: python pandas

如何合并具有相同索引但没有交集的两行中的值?

import pandas as pd

df = pd.DataFrame([[1,2,3],[4,None,None],[None,5,6]],index=['a','b','b'])
df

#input
    0   1   2
a   1.0 2.0 3.0
b   4.0 NaN NaN
b   NaN 5.0 6.0

所需的输出

    0   1   2
a   1.0 2.0 3.0
b   4.0 5.0 6.0

2 个答案:

答案 0 :(得分:2)

stack(),删除所有的nan和unstack()

df.stack().unstack()

答案 1 :(得分:1)

如果可能,简化每个索引标签的第一个非缺失值的解决方案,请使用GroupBy.first

df1 = df.groupby(level=0).first()

如果可能的话,样本数据的相同输出是每个标签使用sum的使用总和:

df1 = df.sum(level=0)

如果每组有多个不丢失的值是必需的,则指定期望的输出,显然要复杂得多。