python - Pandas split a columns value and assign back to the column -
i working following pandas data frame has column containing date string. date has time.
(pdb) temp_df_no_na['logged_dt'].head(n=5) 0 01/19/2010 00:00:00.000000 1 03/28/2009 00:00:00.000000 2 09/22/2005 00:00:00.000000 3 12/14/2010 00:00:00.000000 5 02/23/2010 00:00:00.000000 i want split space between date @ time , keep date part.
i wrote following lambda function , did apply. did work end getting warning , worried results might corrupt. why warning this:
temp_df_no_na['logged_dt'] = temp_df_no_na['logged_dt'].apply(lambda x:x.split(" ")[0] if(x.split(" ") > 0) else x) here warning
settingwithcopywarning: value trying set on copy of slice dataframe. try using .loc[row_indexer,col_indexer] = value instead see caveats in documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy dataframecreator import dataframecreator (pdb) temp_df_no_na['logged_dt'].head(n=5) 0 01/19/2010 1 03/28/2009 2 09/22/2005 3 12/14/2010 5 02/23/2010
method 1
timestamp pd.to_datetime
temp_df_no_na.logged_dt = pd.to_datetime(temp_df_no_na.logged_dt) temp_df_no_na.logged_dt 0 2010-01-19 1 2009-03-28 2 2005-09-22 3 2010-12-14 5 2010-02-23 name: logged_dt, dtype: datetime64[ns] method 2
dt.strftime
temp_df_no_na.logged_dt = pd.to_datetime(temp_df_no_na.logged_dt).dt.strftime('%y-%m-%d') temp_df_no_na.logged_dt 0 2010-01-19 1 2009-03-28 2 2005-09-22 3 2010-12-14 5 2010-02-23 name: logged_dt, dtype: object mehtod 3
str.split
temp_df_no_na.logged_dt = temp_df_no_na.logged_dt.str.split().str[0] temp_df_no_na.logged_dt 0 2010-01-19 1 2009-03-28 2 2005-09-22 3 2010-12-14 5 2010-02-23 name: logged_dt, dtype: object
Comments
Post a Comment