Προς το περιεχόμενο

Python σύγκριση μεταξύ objects


vasokir

Προτεινόμενες αναρτήσεις

Καλησπέρα, έχω ένα dataframe (τύπου object) και θέλω να πετάξω κάποιες τεράστιες τιμές που έχει (πχ 5.000.000) γιατί μου βγάζει error και δεν μου τα μετατρέπει σε float.

Προσπάθησα να συγκρίνω df=df[df['column']<'5000'] αλλά μου βγάζει σφάλμα ότι δεν υποστηρίζεται το '<',υποθέτω υπάρχει διαφορετικός τρόπος σύγκρισης μεταξύ objects.

Καμιά ιδεά;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Οι τιμές του column είναι σε μορφή string? Θα πρέπει να τις μετατρέψεις σε float πριν πας να κάνεις τη σύγκριση

df['column'] = df['column'].astype(float)

ύστερα θα πρεπει να συγκρινεις όπως το κανεις αλλα το 5000 να το βαλεις χωρις εισαγωγικα

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ουσιαστικά το θέμα που έχω είναι αυτό...Θέλω να κάνω float όλη τη στήλη αλλά μου βγάζει αυτό: could not convert string to float: '9.544.000.000.000.000'

γι αυτό σκέφτηκα να εντοπίσω όλες τις μεγάλες τιμές και να τις πετάξω,αφού είναι ελάχιστες σε σχέση με το μέγεθος του dataset που έχω.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

6 λεπτά πριν, georgemarios είπε

σε αυτή τη περίπτωση, φιλτραρε τις τιμες βασει του μήκους του string, και μετα το μετατρεπεις σε νουμερα

Ενδεικτικά


df['column'].str.len() < 6

 

Τέλεια,δεν το είχα σκεφτεί!

Σ ευχαριστώ πολύ!!!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Επίσης, όπως βλέπω ο αριθμός σου εχει τελειες, δε ξερω αν παιζει καποιο μπερδεμα καιτ ο pandas τα θεωρει multiple decimal points

Οποτε δοκιμασε απλα να τα αφαιρεσεις απο το string πριν τη μετατροπη

df['column'].str.replace('\.','').astype(int)

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 λεπτό πριν, georgemarios είπε

Επίσης, όπως βλέπω ο αριθμός σου εχει τελειες, δε ξερω αν παιζει καποιο μπερδεμα καιτ ο pandas τα θεωρει multiple decimal points

Οποτε δοκιμασε απλα να τα αφαιρεσεις απο το string πριν τη μετατροπη


df['column'].str.replace('\.','').astype(int)

 

Το σκέφτηκα αυτό, βέβαια δούλεψε αυτό που μου είπες πριν,  και επειδή δεν προλαβαίνω το αφήνω έτσι, έτσι κι αλλιώς πρόκειται για data entry errors λογικά...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...