gpt4 book ai didi

python - Pandas :从数字字符串中提取或拆分字符

转载 作者:太空狗 更新时间:2023-10-30 02:31:44 26 4
gpt4 key购买 nike

我有一个从 sql 表中选择的数据框,看起来像这样

   id shares_float
0 1 621.76M
1 2 329.51M

换句话说,

[(1, '621.76M'), (2, '329.51M')]

我想拆分 shares_float,如果它是“B”,则乘以 1,000,000,000,如果它是“M”,则乘以 1,000,000,如果两者都不是或没有尾随字符,则只需转换并分配数字。

结果应该是float类型

   ticker_id  shares_float     float_value
0 1 621.76M 621760000.00
1 2 3.51B 3510000000.00

我是 Pandas 的新手。有没有办法在 Pandas 中做到这一点?或者我应该将数据转换为列表并在循环中进行操作,然后将其转换回 pandas DataFrame?

补充说明:答案很好!谢谢你。顺便说一句,这个功能是如何工作的?

最佳答案

可以使用转换字典,而且我确定你不是指 624540000:

In [9]:

D={'M':'*1e6', 'B':'*1e9'}
df['float_value']=df.shares_float.apply(lambda x: eval(x[:-1]+D[x[-1]]))
In [10]:

print df
ticker_id shares_float float_value
0 1 621.76M 621760000
1 2 3.51B 3510000000

[2 rows x 3 columns]
In [11]:

df.dtypes
Out[11]:
ticker_id int64
shares_float object
float_value float64
dtype: object

关于python - Pandas :从数字字符串中提取或拆分字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22353369/

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