Each Answer to this Q is separated by one/two green lines.
I am new to python (coming from R), and I am trying to understand how I can convert a timestamp series in a pandas dataframe (in my case this is called
df['timestamp']) into what I would call a string vector in R. is this possible? How would this be done?
df['timestamp'].apply('str'), but this seems to simply put the entire column
df['timestamp'] into one long string. I’m looking to convert each element into a string and preserve the structure, so that it’s still a vector (or maybe this a called an array?)
Consider the dataframe
df = pd.DataFrame(dict(timestamp=pd.to_datetime(['2000-01-01']))) df timestamp 0 2000-01-01
Use the datetime accessor
dt to access the
strftime method. You can pass a format string to
strftime and it will return a formatted string. When used with the
dt accessor you will get a series of strings.
df.timestamp.dt.strftime('%Y-%m-%d') 0 2000-01-01 Name: timestamp, dtype: object
strftime.org for a handy set of format strings.
>>> import pandas as pd >>> df = pd.to_datetime(pd.Series(['Jul 31, 2009', '2010-01-10', None])) >>> df.astype(str) 0 2009-07-31 1 2010-01-10 2 NaT dtype: object
returns an array of strings
Following on from VinceP’s answer, to convert a datetime Series in-place do the following: