Change date format of dataframe date column [duplicate] - python

This question already has answers here:
How to change the datetime format in Pandas
(8 answers)
Closed 4 years ago.
I have this panda dataframe df.
Name Date Score Score2
Joe 26-12-2007 53.45 53.4500
Joe 27-12-2007 52.38 52.7399
Joe 28-12-2007 51.71 51.8500
I would like to convert the date format in the Date column from dd-mm-yyyy to yyyy-mm-dd. The converted dataframe will look like this;
Name Date Score Score2
Joe 2007-12-26 53.45 53.4500
Joe 2007-12-27 52.38 52.7399
Joe 2007-12-28 51.71 51.8500
I am using python v3.6
EDIT: The duplicate question assumes that the original date format is yyyy-mm-dd. However, my original date format is dd-mm-yyyy. If I were to apply the answer in that question, the converted dates is wrong.
How to change the datetime format in pandas

Use:
df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y-%m-%d')

I think you need this:
df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')

Related

I want to convert (01-07-57) to date value

I want to convert the datum column which is a string to DateTime format.
when I use
sf['Datum'] = pd.to_datetime(sf['Datum']).dt.date
its showing the year as 2057 instead of 1957
There's a answer over here:
pandas to_datetime parsing wrong year
It's due to 2 digit years from 0-68 mapping to 20xx.
what if just replace years?
sf['Datum'] = pd.to_datetime(sf['Datum'].str.replace(r'(\d\d)$',r'19\1'))

changing date format of column in pyspark [duplicate]

This question already has answers here:
Convert pyspark string to date format
(6 answers)
Closed 5 months ago.
I have a column of dates in a pyspark dataframe in the format 01-01-1999 (dd-mm-yyyy)and I would like to change the date format of the entire column to 1999-01-01 (yyyy-mm-dd). Any help?
In pyspark we have this function:
date_format(dateExpr,format)
It converts a date/timestamp/string to a value of string in the format specified by the date format given by the second argument.
You can try ths one:
df.select(date_format('your_column_date', "yyyy-MM-dd")).show()

How do I remove hours and seconds from my DataFrame column in python? [duplicate]

This question already has answers here:
How to change the datetime format in Pandas
(8 answers)
Keep only date part when using pandas.to_datetime
(13 answers)
Closed 10 months ago.
I have a DataFrame :
Age Gender Address Date
15 M 172 ST 2022-02-07 00:00:00
I Want to remove hh:mm:ss
I tried:
import datetime as dt
df["Date"]=df["Date"].dt.Date .
But I am receiving no change in date column format.
All I want is that the date column has only (YYYY-MM-DD).
You can use pd.to_datetime to convert Date column to datetime object.
df['Date'] = pd.to_datetime(df['Date']).dt.date
# or
df['Date'] = pd.to_datetime(df['Date']).dt.strftime('%Y-%m-%d')
# or
df['Date'] = df['Date'].str.split(' ').str[0]

Read excel dates and convert them to individual strings [duplicate]

This question already has answers here:
Extract day and month from a datetime object
(4 answers)
Closed 12 months ago.
I recently started using python.
I have a series of dates in excel
01-05-2021
02-05-2021
.
.
29-05-2021
Now, I want to load this column and convert it into individual strings based on rows. So i can extract the day, month and year separately for each dates
Can someone help me how to do that??
you can do:
df = pd.read_excel("filename.xlsx")
# let's imagine your date column name is "date"
df["day"] = df["date"].apply(lambda elem:elem.split("-")[0])
df["month"] = df["date"].apply(lambda elem:elem.split("-")[1])
df["year"] = df["date"].apply(lambda elem:elem.split("-")[2])
from datetime import datetime
str_time = 01-05-2021
time_convert = datetime.strptime(str_time, '%d-%m-%Y')
print (time_convert, time_convert.day, time_convert.month, time_convert.year)
in your case, make the convert in looping for each data you got from the excel file

Convert integer (YYYYMMDD) to date format (mm/dd/yyyy) in python [duplicate]

This question already has answers here:
How to convert integer into date object python?
(4 answers)
Closed 5 years ago.
I have following dataframe.
id int_date
1 20160228
2 20161231
3 20160618
4 20170123
5 20151124
How to convert above date in int format to date format of mm/dd/yyyy? Want this in particular format for further excel operations?
id int_date
1 02/28/2016
2 12/31/2016
3 06/18/2016
4 01/23/2017
5 11/24/2015
IS it also possible to generate third column with only Month in words? like January, February etc from int_date?
I tried following
date = datetime(year=int(s[0:4]), month=int(s[4:6]), day=int(s[6:8]))
but date is in datetime object, how to put it as date in pandas DF?
You can use datetime methods.
from datetime import datetime
a = '20160228'
date = datetime.strptime(a, '%Y%m%d').strftime('%m/%d/%Y')
Good Luck;
Build a new column with applymap:
import pandas as pd
dates = [
20160228,
20161231,
20160618,
20170123,
20151124,
]
df = pd.DataFrame(data=list(enumerate(dates, start=1)), columns=['id','int_date'])
df[['str_date']] = df[['int_date']].applymap(str).applymap(lambda s: "{}/{}/{}".format(s[4:6],s[6:], s[0:4]))
print(df)
Emits:
$ python test.py
id int_date str_date
0 1 20160228 02/28/2016
1 2 20161231 12/31/2016
2 3 20160618 06/18/2016
3 4 20170123 01/23/2017
4 5 20151124 11/24/2015
There is bound to be a better solution to this, but since you have zeroes instead of single-digit elements in your date (i.e. 06 instead of 6), why not just convert it to string and convert the subsections?
using datetime would also get you the month strings etc.
//edit:
to be a little more precise, something like this should do the job:
def get_datetime(date):
date_string = str(date)
return datetime.date(date_string[:3], date_string[4:6], date_string[6:8]

Categories