首页 > 解决方案 > 将所有列合并为一个空单元格

问题描述

我想将大量具有相似数据的列合并为一列。数据框中的行有很多空单元格,因为每一行都有自己的列用于这些相似的数据。例如:

Name    Weight  Addressw    Addressx    Addressy    Addressz
A       10                  11 g place  
B       15      6, corner
C       24      15, lane                garbage
D       33                                          51, street

在 C 行中,由于两列包含信息,我想将第一列,即“15,车道”放入新列。所以生成的数据框看起来像这样:

Name    Weight  Address
A       10      11 g place
B       15      6, corner
C       24      15, lane
D       33      51, street

标签: pythonpython-3.xpandasdataframe

解决方案


IIUC,你可以这样做:

df['Address'] = df.lookup(np.arange(len(df)), (~df.iloc[:, 2:].isna()).idxmax(1))
result = df[['Name', 'Weight', 'Address']]

print(result)

输出

  Name  Weight     Address
0    A      10  11 g place
1    B      15   6, corner
2    C      24    15, lane
3    D      33  51, street

该方法将从每一行中获取第一个有效地址。


推荐阅读