Reputation: 1604
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?
I tried 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?)
Upvotes: 41
Views: 143378
Reputation: 880
Following on from VinceP's answer, to convert a datetime Series in-place do the following:
df['Column_name']=df['Column_name'].astype(str)
Upvotes: 6
Reputation: 294488
Consider the dataframe df
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
Visit strftime.org
for a handy set of format strings.
Upvotes: 56
Reputation: 2173
Use astype
>>> 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
Upvotes: 16