我在解决以下问题时遇到困难。
我有一个df['subjects']有字符串列表的熊猫。
df['subjects'].head(3) =
0['B:1187', 'B:1188', 'P:123456', 'B:62']
1['G:1', 'G:1C', 'G:21', 'G:3', 'G:30']
2['B:71', 'E:D', 'G:6J', 'P:125467', 'B:1296', 'P:789456']
Run Code Online (Sandbox Code Playgroud)
基本上我需要的是以下内容..
df['subjects'] =
123456
None
125467,789456
Run Code Online (Sandbox Code Playgroud)
我只需要返回具有的值 P:XXXXX
我试过使用 for 循环,但我一直得到错误的值。
我们可以explode使用startswith+ splitbeforegroupby
s=df['subjects'].explode()
s=s[s.str.startswith('P:')].str.split(':').str[-1].groupby(level=0).agg(list).reindex(df.index)
0 [123456]
1 NaN
2 [125467, 789456]
Name: subjects, dtype: object
df['new']=s
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |