如果Dataframe上的/ Elseif条件与多个操作组合在一起

时间:2017-11-06 11:07:47

标签: python pandas numpy if-statement

我有一个看起来像104.5的数据框对象列,并且总是有一个后缀,如K,B或M代表Kilo,Billions或Millions。例如104.5B。

我想做的是检查后缀并将值乘以10 ^ 3,10 ^ 6或10 ^ 9' inplace'。

我找到了一些关于标记新列的解释,但没有像现在的乘法那样。我怎么做聪明的?

1 个答案:

答案 0 :(得分:3)

您可以使用字典和地图,如下所示:

import pandas as pd

df = pd.DataFrame({'Values': ['104.5B', '102.4K', '951M']})

multipliers = {'B': 1,
               'K': 1000,
               'M': 1000000}


df['Values'] = df['Values'].str[:-1].astype(float) * df['Values'].str[-1].map(multipliers)

print(df)

打印:

        Values
0        104.5
1     102400.0
2  951000000.0