将列合并为一列,同时删除 nan 值和重复项

Merge columns into one while dropping nan values and duplicates

我正在尝试将多列合并为一列,同时删除重复项和空值但保留行。 我有:

df= pd.DataFrame(np.array([['nan', 'nan', 'nan'], ['nan', 2, 2], ['nan', 'x', 'nan']]), columns=['a', 'b', 'c'])

我需要的:

df= pd.DataFrame(np.array([[''], [ 2], [ 1]]), columns=['a'])

我试过了,但最后一行得到 1,nan:

df['a]=df[['a','b','c]].agg(', '.join, axis=1) 

我也尝试过以下方法,但无法正常工作:

.stack().unstack() 

.join 

但我无法让这些删除每行的重复项

这将找到一行的最大值并将'nan'替换为'':

new_df = pd.DataFrame(df.astype(float).max(axis=1).replace(np.nan, ''), columns=[df.columns[0]])

输出:

     a
0  
1  2.0
2  1.0