我有一个数据框“df”,其中包含“Amount”列,其中包含数百万的值,如2.3,17,1.47等。我想在“df”中创建一个新列“Amount1”,它将“Amount”中的每个值转换为2300000,17000000,1470000等形式。我该如何完成这项任务?以下代码抛出错误 - 无效语法。
df[Amount1] = df[Amount]
df[Amount1] = df.Amount1 * 1000000
答案 0 :(得分:2)
您可以先Series.astype
转换为float
:
df['Amount1'] = df.Amount.astype(float) * 1000000
如果它不起作用,请使用另一个solution。
可能在值中有一些空格,因此请按str.strip
删除它:
df['Amount1'] = df.Amount.str.strip().astype(float) * 1000000
编辑:
df['Amount1'] = df.Amount.str.replace('-','.').astype(float) * 1000000
或者:
df['Amount1'] = df.Amount.str.replace('-','').astype(float) * 1000000
答案 1 :(得分:1)
尝试:
df['Amount1'] = pd.to_numeric(df.Amount, errors='coerce') * 1000000