Cat*_*taa 4 python dataframe python-3.x pandas
我有2个数据框:
ID word
1 srv1
2 srv2
3 srv1
4 nan
5 srv3
6 srv1
7 srv5
8 nan
Run Code Online (Sandbox Code Playgroud)
ID word
1 nan
2 srv12
3 srv10
4 srv8
5 srv4
6 srv7
7 nan
8 srv9
Run Code Online (Sandbox Code Playgroud)
我需要的是将ID上的那两个数据帧合并,并合并列字以获得:
ID word
1 srv1
2 srv2 , srv12
3 srv1 , srv10
4 srv8
5 srv3 , srv4
6 srv1 , srv7
7 srv5
8 srv9
Run Code Online (Sandbox Code Playgroud)
用下面的代码
ID word
1 srv1
2 srv2
3 srv1
4 nan
5 srv3
6 srv1
7 srv5
8 nan
Run Code Online (Sandbox Code Playgroud)
我正进入(状态:
ID word
1 nan
2 srv2 , srv12
3 srv1 , srv10
4 nan
5 srv3 , srv4
6 srv1 , srv7
7 nan
8 nan
Run Code Online (Sandbox Code Playgroud)
这不是正确的解决方案。
即使使用中的源列之一,也可以使用Series.str.cat和na_rep选项填充word列nan,然后使用str.strip修剪' , '字词之间的前导/后缀。
m['word'] = m['word_x'].str.cat(m['word_y'], sep=' , ', na_rep='').str.strip(' , ')
Run Code Online (Sandbox Code Playgroud)
退货
ID word_x word_y word
0 1 srv1 NaN srv1
1 2 srv2 srv12 srv2 , srv12
2 3 srv1 srv10 srv1 , srv10
3 4 NaN srv8 srv8
4 5 srv3 srv4 srv3 , srv4
5 6 srv1 srv7 srv1 , srv7
6 7 srv5 NaN srv5
7 8 NaN srv9 srv9
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |