Πώς να χρησιμοποιήσετε .loc για να φιλτράρετε με βάση πεδία ημερομηνίας

ψήφοι
0

Πρόσφατα άρχισα να παίζω γύρω με Python και έχουν κολλήσει με ένα θέμα που σχετίζεται με Pandas (ιδιαίτερα .loc) για μια στιγμή τώρα. Βασικά, είμαι απλώς προσπαθούν να χειραγωγήσουν την dataframe έτσι ώστε να κρατά μόνο ορισμένα χρονικά διαστήματα.

Όταν φίλτρο για μία συγκεκριμένη ημερομηνία η εντολή λειτουργεί άψογα, αλλά μόλις έχω αλλάξει για μια σειρά που δεν θα. Επίσης, οποιαδήποτε άλλη μεταβλητή τύπου λειτουργεί καλά - Είμαι έκπληκτος, γιατί οι άνθρωποι πρέπει να έχουν για να φιλτράρετε για τις ημερομηνίες όλη την ώρα. Έχω να μετατρέψει την ημερομηνία;

# this works perfectly fine
raw_data.loc[raw_data['date_field'] == '2019-06-20', 'id':'date_field']

# this does not
raw_data.loc[raw_data['date_field'] >= '2019-06-20', 'id':'date_field']

Παίρνω ένα λάθος τύπο:

TypeError traceback (πιο πρόσφατη κλήση τελευταία)

Τώρα, έχω δοκιμάσει όλα τα είδη των διαφορετικών μετασχηματισμών του πεδίου ημερομηνία αλλά να πάρει το ίδιο λάθος. Είναι δυνατόν να φιλτράρετε ημερομηνίες χρησιμοποιώντας .loc;

Δημοσιεύθηκε 24/10/2019 στις 11:59
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Νομίζω ότι εδώ είναι απαραίτητη στήλη μετατροπή σε datetimes από to_datetime:

raw_data['date_field'] = pd.to_datetime(raw_data['date_field'])
raw_data.loc[raw_data['date_field'] >= '2019-06-20', 'id':'date_field']
Απαντήθηκε 24/10/2019 στις 12:05
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more