如何合并具有相同索引但没有交集的两行中的值?
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
答案 0 :(得分:2)
请stack()
,删除所有的nan和unstack()
df.stack().unstack()
答案 1 :(得分:1)
如果可能,简化每个索引标签的第一个非缺失值的解决方案,请使用GroupBy.first
:
df1 = df.groupby(level=0).first()
如果可能的话,样本数据的相同输出是每个标签使用sum
的使用总和:
df1 = df.sum(level=0)
如果每组有多个不丢失的值是必需的,则指定期望的输出,显然要复杂得多。