将列合并为一列,同时删除 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
我正在尝试将多列合并为一列,同时删除重复项和空值但保留行。 我有:
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