Alex Kalaidjiev
Alex Kalaidjiev

Reputation: 123

String dates into unixtime in a pandas dataframe

i got dataframe with column like this:

Date
3 mins
2 hours
9-Feb
13-Feb

the type of the dates is string for every row. What is the easiest way to get that dates into integer unixtime ?

Upvotes: 0

Views: 117

Answers (1)

jezrael
jezrael

Reputation: 862691

One idea is convert columns to datetimes and to timedeltas:

df['dates'] = pd.to_datetime(df['Date']+'-2020', format='%d-%b-%Y', errors='coerce')

times = df['Date'].replace({'(\d+)\s+mins': '00:\\1:00',
                             '\s+hours': ':00:00'}, regex=True)
df['times'] = pd.to_timedelta(times, errors='coerce')

#remove rows if missing values in dates and times
df = df[df['Date'].notna() | df['times'].notna()]
df['all'] = df['dates'].dropna().astype(np.int64).append(df['times'].dropna().astype(np.int64))
print (df)
      Date      dates    times                  all
0   3 mins        NaT 00:03:00         180000000000
1  2 hours        NaT 02:00:00        7200000000000
2    9-Feb 2020-02-09      NaT  1581206400000000000
3   13-Feb 2020-02-13      NaT  1581552000000000000

Upvotes: 1

Related Questions