2017-06-10 82 views

回答

3

在正则表达式\D意味着没有数字......因此我们可以使用pd.Series.str.replace

dataframe.amount.replace('\D', '', regex=True).astype(int) 

0 309244 
1 309244 
Name: amount, dtype: int64 
+0

感谢您对这个答案可以请你帮我最新题;我不知道该怎么做,你是唯一一个似乎能够帮助你的人!求求你了,谢谢你! https://stackoverflow.com/questions/44475995/remove-blacklisted-emails-pandas-type-error-returned – kwashington122

-1

你可以将它设置为INT方式:

df['amount'] = df['amount'].astype(np.int) 

如果你想告诉Python阅读放在第一位列如int,用途:

#assuming you're reading from a file 
pd.read_csv(file_name, dtype={'amount':np.int32}) 
0

假设你的列名是amount ,这里是你应该做的:

dataframe['amount'] = dataframe.amount.str.replace('\$|\.|\,', '').astype(int) 
2

你可以使用Series.replaceSeries.str.replaceSeries.astype

dataframe = pd.DataFrame(data={'amount':['$3,092.44', '$3,092.44']}) 
print (dataframe) 
     amount 
0 $3,092.44 
1 $3,092.44 

dataframe['amount'] = dataframe['amount'].replace('[\$\,\.]', '', regex=True).astype(int) 

print (dataframe) 
    amount 
0 309244 
1 309244 

dataframe['amount'] = dataframe['amount'].str.replace('[\$\,\.]', '').astype(int) 

print (dataframe) 
    amount 
0 309244 
1 309244