gpt4 book ai didi

python - Pandas 提取多列

转载 作者:太空宇宙 更新时间:2023-11-03 16:27:04 25 4
gpt4 key购买 nike

使用 Pandas,我向 DataFrame 添加新列:

df["Year"] = df["concat"].str.extract("(\d\d\d\d$)", expand=False)
df["Month"] = df["concat"].str.extract("(\d\d)\_\d\d\d\d$", expand=False)
df["Measure"] = df["concat"].str.extract("^(.*)\_\d\d\_\d\d\d\d$", expand=False)

这可以工作,但速度很慢。我正在考虑一步完成所有 3 个操作(希望这会提高性能):

df["Measure", "Year", "Month"] = (df["concat"].str.extract("^(?P<Measure>.*)\_(?P<Month>\d\d)\_(?P<Year>\d\d\d\d)$", expand=True))

但这不起作用(ValueError:传递的项目数量错误为 3,放置意味着 1)。

如何使其发挥作用或如何有效地提取此信息?

最佳答案

您将 3 个单独的值作为 df["Measure", "Year", "Month"] 传递到 df 引用中"Measure""Year""Month" 而不是单个数组 ["Measure","Year","月”]。它应该看起来像 df[["Measure", "Year", "Month"]]

或者,您可以使用 pandas 连接函数。

df2= df["concat"].str.extract("^(?P<Measure>.*)\_(?P<Month>\d\d)\_(?P<Year>\d\d\d\d)$", expand=True)
pd.concat([df,df2],axis = 1)

关于python - Pandas 提取多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37893773/

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