将字符串解析为列

parse string into columns

我有一个名为“名称”的列。它是字符串类型。它看起来像这样:

name
attr1=val1a; attr2=val2a; attr3=val3a; attr4=val4a
attr1=val1b; attr5=val5b; attr3=val3b; attr6=val6b

我想将此列解析为:

attr1 attr2 attr3 attr4 attr5 attr6
val1a val2a val3a val4a Null Null
val1b Null val3b Null val5b val6b

有人可以帮我找到在 python 中执行此操作的方法。

提前致谢!

你可以按 ; 拆分每个字符串,对于每个拆分,按 = 拆分并将其转换为字典,然后使用 pd.json_normalize:

new_df = pd.json_normalize(df['name'].str.split(r';\s*').apply(lambda lst: dict(i.split('=') for i in lst)))

输出:

>>> new_df
   attr1  attr2  attr3  attr4  attr5  attr6
0  val1a  val2a  val3a  val4a    NaN    NaN
1  val1b    NaN  val3b    NaN  val5b  val6b