Converting A Datetime Column To A String Column
I'm trying to convert a datetime column back to a string in Pandas dataframe. the syntax I have so far is: all_data['Order Day new'] = dt.date.strftime(all_data['Order Day new'], '
Solution 1:
If you're using version 0.17.0
or higher then you can call this using .dt.strftime
which is vectorised:
all_data['Order Day new'] = all_data['Order Day new'].dt.strftime('%Y-%m-%d')
** If your pandas version is older than 0.17.0
then you have to call apply
and pass the data to strftime
:
In [111]:
all_data = pd.DataFrame({'Order Day new':[dt.datetime(2014,5,9), dt.datetime(2012,6,19)]})
print(all_data)
all_data.info()
OrderDaynew02014-05-0912012-06-19
<class'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1Data columns (total 1 columns):
OrderDaynew2 non-null datetime64[ns]
dtypes: datetime64[ns](1)
memory usage: 32.0 bytes
In [108]:
all_data['Order Day new'] = all_data['Order Day new'].apply(lambda x: dt.datetime.strftime(x, '%Y-%m-%d'))
all_data
Out[108]:
OrderDaynew02014-05-0912012-06-19In [109]:
all_data.info()
<class'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1Data columns (total 1 columns):
OrderDaynew2 non-nullobjectdtypes: object(1)
memory usage: 32.0+ bytes
You can't call strftime
on the column as it doesn't understand Series
as a param hence the error
Solution 2:
all_data['Order Day new']=all_data['Order Day new'].astype(str)
I think this is more simple, if the date is already in the format you want it in string form.
Solution 3:
For converting all datetime columns to string use the below code.
for x in df.select_dtypes(include=['datetime64']).columns.tolist():
df[x] = df[x].astype(str)
or
date_columns = df.select_dtypes(include=['datetime64']).columns.tolist()
df[date_columns] = df[date_columns].astype(str)
Solution 4:
In my case I had a pySpark dataframe. This is how I converted "day" of type timestamp, to a string:
import pyspark.sql.functions as FconvertedDf= rawDf.withColumn('d2', F.date_format(rawDf['day'], 'yyyyMMdd'))
Post a Comment for "Converting A Datetime Column To A String Column"