gpt4 book ai didi

python - 基于分隔符拆分字符串列并将其转换为 Pandas 中的 dict 无需循环

转载 作者:行者123 更新时间:2023-12-04 10:43:18 25 4
gpt4 key购买 nike

我有以下数据框

clm1, clm2, clm3
10, a, clm4=1|clm5=5
11, b, clm4=2

我想要的结果是
clm1, clm2, clm4, clm5
10, a, 1, 5
11, b, 2, Nan

我试过下面的方法
rows = list(df.index)    

dictlist = []

for index in rows: #loop through each row to convert clm3 to dict
i = df.at[index, "clm3"]

mydict = dict(map(lambda x: x.split('='), [x for x in i.split('|') if '=' in x]))
dictlist.append(mydict)


l=json_normalize(dictlist) #convert dict column to flat dataframe

resultdf = example.join(l).drop('clm3',axis=1)

这给了我想要的结果,但我正在寻找一种更有效的方法将 clm3 转换为 dict 不涉及遍历每一行。

最佳答案

两个步骤:

想法是创建一个双重拆分,然后按索引分组并将值作为列拆开

s = (
df["clm3"]
.str.split("|", expand=True)
.stack()
.str.split("=", expand=True)
.reset_index(level=1, drop=True)
)

final = pd.concat([df, s.groupby([s.index, s[0]])[1].sum().unstack()], axis=1).drop(
"clm3", axis=1
)
print(final)
clm1 clm2 clm4 clm5
0 10 a 1 5
1 11 b 2 NaN

关于python - 基于分隔符拆分字符串列并将其转换为 Pandas 中的 dict 无需循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com