gpt4 book ai didi

python - 如何对多列使用 pandas 提取方法

转载 作者:太空宇宙 更新时间:2023-11-04 05:01:06 26 4
gpt4 key购买 nike

我的数据框中有一列包含价格数据,但将它们放在一起作为“价格 x 大小 (num_orders)”。例如,该列(从 CSV 文件中读取)是:127.3 x 13 (1)我遇到了 Pandas extract 方法并且我可以使用它,但我只能让它在创建一个列和一次时工作。所以我让它工作,但我想知道如何在一个语句中完成所有操作,因为我认为它至少会给我一些 Pandas 指令。这有效:

df['price']=df.Level1.str.extract('(\d*\.\d*) x', expand=False)
df['size']=df.Level1.str.extract(' x (\d*)', expand=False)
df['num_orders'] = df.Level1.str.extract(' \((\d*)\)$', expand=False)

但这不是:

gcq7['price'], gcq7['size'], gcq7['num_orders'] = 
gcq7.Level1.str.extract('(?P<price>\d*\.\d*) x (?P<size>\d*) \((?P<num_orders>\d*)\)$', expand=False)

我只得到三列标题正确(价格、尺寸、num_orders),但它们的列名称一直作为值,即“价格”列的每一行的值都是“价格”。

感谢帮助。

编辑:考虑以下以索引作为输入的列:

Date_Timestamp
2017-06-01 00:00:00.000 127.06000000 x 8 (0)
2017-06-01 00:00:00.000 127.38000000 x 8 (0)

和期望的输出:

                              price     size    num_orders
Date_Timestamp
2017-06-01 00:00:00.000 127.06000000 8 0
2017-06-01 00:00:00.000 127.38000000 8 0

根据建议进行编辑,以便将来清晰。

最佳答案

IIUC 你快到了:

pat = r'(?P<price>\d*\.\d*)\s*x\s*(?P<size>\d*)\s*\((?P<num_orders>\d*)\)$'
gcq7[['price','size','num_orders']] = gcq7.Level1.str.extract(pat, expand=True)
# NOTE: ^^^^

关于python - 如何对多列使用 pandas 提取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696295/

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