Chciałbym utworzyć kolumnę w ramce danych pandy, która jest liczbą całkowitą reprezentującą liczbę dni w kolumnie timedelta. Czy można użyć „datetime.days”, czy też muszę zrobić coś więcej ręcznie?
kolumna timedelta
7 dni, 23:29:00
Kolumna z liczbą całkowitą dnia
7
timedelta.days
?Odpowiedzi:
Użyj
dt.days
atrybutu. Uzyskaj dostęp do tego atrybutu przez:Możesz również uzyskać atrybuty
seconds
imicroseconds
w ten sam sposób.źródło
Możesz to zrobić, gdzie
td
jest twoja seria timedeltas. Podział konwertuje delty nanosekund na delty dzienne, a konwersja na int spada na całe dni.źródło
/
pomiędzytd
anp
?Obiekty timedelta tylko do odczytu atrybuty instancji
.days
,.seconds
oraz.microseconds
.źródło
Jeśli pytanie nie dotyczy tylko „jak uzyskać dostęp do postaci całkowitej z timedelty?” ale "jak przekonwertować kolumnę timedelta w dataframe na int?" odpowiedź może być trochę inna. Oprócz
.dt.days
akcesor trzeba albodf.astype
albopd.to_numeric
Każda z tych opcji powinna pomóc:
lub
źródło
timedelta64[ns]
. Jeśli twoje daty są NaN, najpierw przekonwertuj je na datę i godzinę za pomocą pandto_datetime
funkcji , a następnie użyj drugiej opcji powyżej. Aby uzyskać więcej informacji, sprawdź to_datetime