gpt4 book ai didi

python - 根据关键字计算新列并拆分

转载 作者:太空狗 更新时间:2023-10-30 02:37:19 25 4
gpt4 key购买 nike

我有一个这样的数据框:

>>> df1
overall
0 class1-10/class2-11/class3-13
1 class3-31/class2-22/class1-23
2 abc/def/xyz/prq

如果在 'overall' 中找到它们,我想计算 3 列 class1 、 class2 和 class3 。所需的 o/p

          overall                 class1  class2  class3
0 class1-10/class2-11/class3-13 10 11 13
1 class3-31/class2-22/class1-23 23 22 32
2 abc/def/xyz/prq NaN NaN NaN

如何以 pythonaic 方式完成此操作?谢谢

最佳答案

使用 str.extract 可能很诱人,但根据文档,它只匹配第一个匹配项。另一方面,str.extractall 输出的数据帧有点过于复杂而无法使用。我们将求助于 df.apply

import re

regex = re.compile(r'(class\d+)-(\d+)')

def func(x):
data = regex.findall(x[0])
for class_name, value in data:
df.loc[x.name, class_name] = value

df.apply(func, axis=1)
print(df)

# overall class1 class2 class3
# 0 class1-10/class2-11/class3-13 10 11 13
# 1 class3-31/class2-22/class1-23 23 22 31
# 2 abc/def/xyz/prq NaN NaN NaN

关于python - 根据关键字计算新列并拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50485438/

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