我有一个具有三列的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 |
基本上,我试图用“ /”分割每一列,然后将结果数组的每个元素与下两列的数组中的适当元素连接起来。
非常感谢
答案 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的列。