熊猫:聚合以保持第一个非NaN值

时间:2018-08-22 17:49:18

标签: python pandas

我有一个以test_num作为索引的数据框:

file_num    6    7
test_num          
79        NaN    ↑
148         ↑  NaN

我需要减小它以保持任何file_num的第一个可用方向(箭头):

           direction
test_num          
79          ↑
148         ↑

我已经尝试过了:

fd.agg(lambda x: [a for a in x if a][0], axis=1)

test_num
79     NaN
148      ↑

fd.agg(lambda x: [a for a in x if a != pd.np.nan][0], axis=1)

test_num
79     NaN
148      ↑

该怎么做?

2 个答案:

答案 0 :(得分:2)

您可以在groupby

中使用统一数组
df.groupby([*'A'*len(df.columns)], 1).first()

          A
test_num   
79        ↑
148       ↑

或使用具有相同效果的可调用项

df.groupby(lambda x: 'A', 1).first()

          A
test_num   
79        ↑
148       ↑

答案 1 :(得分:1)

X = X.apply(lambda x: pd.Series(x.dropna().values), axis = 1)

        1.0
test_num    
79        ↑
148       ↑