gpt4 book ai didi

python - 从 pandas 的列表中提取唯一的项目

转载 作者:行者123 更新时间:2023-12-01 01:54:18 24 4
gpt4 key购买 nike

如何从列表中提取值?例如

df = pd.DataFrame([[0, 4, 'Abc', 456, '[45.55%]'],
[2, 5.2, 'abc', 5, '[34.54%]'],
[0.2, 6, 'xyz', 65, '[12.21%]'],
[3, 4.1, 'Xbc', 23, '[99.12%]']], columns=['start', 'end', 'name','body_mass', 'budget'])

我可以使用字符串替换功能,如下所示。但我正在寻找更好的解决方案。

df.budget.str.replace('[', '').str.replace(']', '').str.replace('%', '').astype(float)

0 45.55
1 34.54
2 12.21
3 99.12
Name: budget, dtype: float64

如果重要的话,列表中只有 1 项。

最佳答案

这是一种不同的方式,使用pd.Series.str.replace删除%,ast.literal_eval将字符串转换为列表,以及operator.itemgetter 提取第一项。

from ast import literal_eval
from operator import itemgetter

df['budget'] = df['budget'].str.replace('%', '')\
.apply(literal_eval)\
.apply(itemgetter(0))

print(df['budget'])

0 45.55
1 34.54
2 12.21
3 99.12
Name: budget, dtype: float64
<小时/>

使用正则表达式的替代方法:

import re

pattern = '|'.join([re.escape(i) for i in ('%', '[', ']')])

df['budget'] = df['budget'].str.replace(pattern, '')\
.astype(float)

关于python - 从 pandas 的列表中提取唯一的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50388128/

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