2017-06-10 4 views
0

Ich habe eine Spalte namens Betrag mit hält Werte, die wie folgt aussehen: $ 3.092,44 wenn ich tun dataframe.dtypes() gibt diese Spalte als ein Objekt, wie kann ich diese Spalte in den Typ int konvertieren?Preis Spalte Objekt zu int in Pandas

Antwort

3

in regex \D nicht Ziffer bedeutet ... so können wir verwenden pd.Series.str.replace

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

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

danken Ihnen für diese Antwort können Sie mir bitte mit meinem neuesten helfen Frage; Ich weiß nicht, wie es geht, und du bist der einzige, der zu helfen scheint! Bitte, danke! https://stackoverflow.com/questions/44475995/remove-blacklisted-emails-pandas-type-error-returned – kwashington122

-1

Sie können es auf Int von:

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

Wenn Sie Python sagen, die Spalte als Int an erster Stelle zu lesen, zu verwenden:

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

Ihre Spaltennamen Unter der Annahme amount , hier ist das, was Sie tun sollten:

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

können Sie verwenden Series.replace oder.210 mit Series.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 
Verwandte Themen