慕田峪4524236
使用DataFrame.agg调用dropna和tolist:df.agg(lambda x: x.dropna().tolist(), axis=1)0 [a, b]1 [c, d, e]2 [f, g]dtype: object如果您需要逗号分隔的字符串,请使用str.cat或str.join:df.agg(lambda x: x.dropna().str.cat(sep=','), axis=1)# df.agg(lambda x: ','.join(x.dropna()), axis=1)0 a,b1 c,d,e2 f,gdtype: object如果性能很重要,我建议使用列表理解:df['output'] = [x[pd.notna(x)].tolist() for x in df.values]df col1 col2 col3 output0 a NaN b [a, b]1 c d e [c, d, e]2 f g NaN [f, g]这是有效的,因为您的 DataFrame 由字符串组成。