拆分熊猫列,然后将元素与另一个拆分列的匹配元素连接

时间:2019-03-04 17:09:02

标签: python pandas

我有一个具有三列的df,其结构如下:

Name                    |   First Last Name    |    Second Last Name
---------------------------------------------------------------------
Name1/ Name2 / Name3    |   FLN1 / FLN2 / FLN3 |    SLN1 / / SLN3
---------------------------------------------------------------------
Name1                   |   FLN1               |    SLN1
---------------------------------------------------------------------
Name1 / Name2           |   FLN1 / FLN2        |     / SLN2

希望有以下内容:

|Full names                                         |
-----------------------------------------------------
|Name 1 FLN1 SLN1, Name 2 FLN 2, Name 3 FLN 3 SLN3  |
-----------------------------------------------------
|Name1 FLN1 SLN1                                    |
-----------------------------------------------------
|Name 1 FLN1, Name 2 FLN 2 SLN2                     |

基本上,我试图用“ /”分割每一列,然后将结果数组的每个元素与下两列的数组中的适当元素连接起来。

非常感谢

1 个答案:

答案 0 :(得分:1)

对数据格式进行一些假设...

我会使用内置在str processing methods中的熊猫:

df = pd.DataFrame({'first':['A / B / C', 'F / G'], 'second':['D / / E', 'H / I']})

full_name_df = df['first'].str.split('/', expand=True) + df['second'].str.split('/', expand=True)

full_name_df如下:

     0     1     2
0   A D    B    C E
1   F H   G I   NaN

如您所见,您将获得一个具有 n 列的DataFrame(其中 n 是给定单元格中名称的最大数量),并且行数与您原来的DataFrame。我还认为,在某些情况下,具有此附加的“ full_name” DataFrame是一个优点,尽管您始终可以将其添加为原始DataFrame的列。