Python:如何使用从列计算的乘法字段扩展 DataFrame

Gre*_*een 3 python pandas

我有一个 datadrame,它看起来像:

     A    B 
0  2.0  'C=4;D=5;'
1  2.0  'C=4;D=5;'
2  2.0  'C=4;D=5;'
Run Code Online (Sandbox Code Playgroud)

我可以解析 B 列中的字符串,假设使用函数名称parse_col(),将其解析为如下所示的 dict:

{C: 4, D: 5} 
Run Code Online (Sandbox Code Playgroud)

如何将 2 个额外的列添加到数据框中,使其看起来像这样:

     A    B          C   D
0  2.0  'C=4;D=5;'   4   5
1  2.0  'C=4;D=5;'   4   5
2  2.0  'C=4;D=5;'   4   5
Run Code Online (Sandbox Code Playgroud)

我只能取特定的列,解析它并添加它,但这显然不是最好的方法。
我还尝试在pandas 应用文档中使用示例的变体,但我没有设法使其仅在特定列上工作。

Erf*_*fan 9

我们可以使用Series.str.extractall然后将其链接unstack到将行转为列:

df[['C', 'D']] = df['B'].str.extractall('(\d+)').unstack()

     A           B  C  D
0  2.0  'C=4;D=5;'  4  5
1  2.0  'C=4;D=5;'  4  5
2  2.0  'C=4;D=5;'  4  5
Run Code Online (Sandbox Code Playgroud)