首页 > 解决方案 > 如何在 Python 中将字母符号与其值转换

问题描述

我有多个列,其中的值聚合为十亿或百万,并希望将它们全部转换为相同比例的数值。以下是我不成功的尝试:

df = pd.DataFrame({'a' : ['1.2B', '300M', 'NaN'],
                'b' : ['NaN', '2.01B', '90000']})

def symbolToNum(x):
  x.astype('string')
  if x.str.strip().str[-1] = 'T' : return x.str[:-1].astype('float')*10^12
  elif x.str.strip().str[-1]  = 'B' : return x.str[:-1].astype('float')*10^9
  elif x.str.strip().str[-1] = 'M' : return x.str[:-1].astype('float')*10^6
  elif x.str.strip().str[-1] ='K' : return x.str[:-1].astype('float')*10^3
  else : return x.astype('float')

dollarcols =['a', 'b']
df[dollarcols] = df[dollarcols].apply(lambda x: symbolToNum(x))

标签: pythonpandasif-statementtype-conversionapply

解决方案


推荐阅读