Date formatting and including days
up vote
-1
down vote
favorite
I have a csv file which has column of dates (D/M/Y format) and I want to convert it to days column. I used following approach:
In [1]: import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#f = pd.read_csv(".some_file.csv")
In [2]: f=pd.DataFrame([['1/1/2013', 400, 1000]['2/1/2013', 500, 3000]], columns=['date','flights','distance'])
f['date']=pd.to_datetime(f['date'], format='%d/%m/%y',errors='ignore')
f['day']=f['date'].dt.weekday_name
I was expecting the day column. It appeared for the first time and I used that table too. However after clearing kernel I am getting NaT in date and NaN in day. After that days never appeared.
Am I doing anything wrong? If yes, how did day appeared for the first time?
Thanks for reading. Any help will be appreciated.
PS CSV has more than 330K rows. I have to assign day for each date.
python pandas datetime
add a comment |
up vote
-1
down vote
favorite
I have a csv file which has column of dates (D/M/Y format) and I want to convert it to days column. I used following approach:
In [1]: import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#f = pd.read_csv(".some_file.csv")
In [2]: f=pd.DataFrame([['1/1/2013', 400, 1000]['2/1/2013', 500, 3000]], columns=['date','flights','distance'])
f['date']=pd.to_datetime(f['date'], format='%d/%m/%y',errors='ignore')
f['day']=f['date'].dt.weekday_name
I was expecting the day column. It appeared for the first time and I used that table too. However after clearing kernel I am getting NaT in date and NaN in day. After that days never appeared.
Am I doing anything wrong? If yes, how did day appeared for the first time?
Thanks for reading. Any help will be appreciated.
PS CSV has more than 330K rows. I have to assign day for each date.
python pandas datetime
add a comment |
up vote
-1
down vote
favorite
up vote
-1
down vote
favorite
I have a csv file which has column of dates (D/M/Y format) and I want to convert it to days column. I used following approach:
In [1]: import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#f = pd.read_csv(".some_file.csv")
In [2]: f=pd.DataFrame([['1/1/2013', 400, 1000]['2/1/2013', 500, 3000]], columns=['date','flights','distance'])
f['date']=pd.to_datetime(f['date'], format='%d/%m/%y',errors='ignore')
f['day']=f['date'].dt.weekday_name
I was expecting the day column. It appeared for the first time and I used that table too. However after clearing kernel I am getting NaT in date and NaN in day. After that days never appeared.
Am I doing anything wrong? If yes, how did day appeared for the first time?
Thanks for reading. Any help will be appreciated.
PS CSV has more than 330K rows. I have to assign day for each date.
python pandas datetime
I have a csv file which has column of dates (D/M/Y format) and I want to convert it to days column. I used following approach:
In [1]: import numpy as np
import pandas as pd
from pandas import Series, DataFrame
#f = pd.read_csv(".some_file.csv")
In [2]: f=pd.DataFrame([['1/1/2013', 400, 1000]['2/1/2013', 500, 3000]], columns=['date','flights','distance'])
f['date']=pd.to_datetime(f['date'], format='%d/%m/%y',errors='ignore')
f['day']=f['date'].dt.weekday_name
I was expecting the day column. It appeared for the first time and I used that table too. However after clearing kernel I am getting NaT in date and NaN in day. After that days never appeared.
Am I doing anything wrong? If yes, how did day appeared for the first time?
Thanks for reading. Any help will be appreciated.
PS CSV has more than 330K rows. I have to assign day for each date.
python pandas datetime
python pandas datetime
edited Nov 22 at 10:27
asked Nov 22 at 9:56
Nikhil Jagtap
73
73
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
accepted
The problem is you have incorrectly specified the datetime
format and hidden the error by setting errors='ignore'
. You need '%Y'
for the full year (see Python's strftime
directives):
f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')
errors='coerce'
will give NaN
for non-convertible dates. Or, to raise errors, just omit the errors
parameter altogether.
For such problems, it's good practice to look at f.dtypes
to see whether your type conversion has succeeded. For example, you should see:
print(f['date'].dtype)
# datetime64[ns]
You should not see:
print(f['date'].dtype)
# object
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
accepted
The problem is you have incorrectly specified the datetime
format and hidden the error by setting errors='ignore'
. You need '%Y'
for the full year (see Python's strftime
directives):
f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')
errors='coerce'
will give NaN
for non-convertible dates. Or, to raise errors, just omit the errors
parameter altogether.
For such problems, it's good practice to look at f.dtypes
to see whether your type conversion has succeeded. For example, you should see:
print(f['date'].dtype)
# datetime64[ns]
You should not see:
print(f['date'].dtype)
# object
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
add a comment |
up vote
0
down vote
accepted
The problem is you have incorrectly specified the datetime
format and hidden the error by setting errors='ignore'
. You need '%Y'
for the full year (see Python's strftime
directives):
f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')
errors='coerce'
will give NaN
for non-convertible dates. Or, to raise errors, just omit the errors
parameter altogether.
For such problems, it's good practice to look at f.dtypes
to see whether your type conversion has succeeded. For example, you should see:
print(f['date'].dtype)
# datetime64[ns]
You should not see:
print(f['date'].dtype)
# object
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
add a comment |
up vote
0
down vote
accepted
up vote
0
down vote
accepted
The problem is you have incorrectly specified the datetime
format and hidden the error by setting errors='ignore'
. You need '%Y'
for the full year (see Python's strftime
directives):
f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')
errors='coerce'
will give NaN
for non-convertible dates. Or, to raise errors, just omit the errors
parameter altogether.
For such problems, it's good practice to look at f.dtypes
to see whether your type conversion has succeeded. For example, you should see:
print(f['date'].dtype)
# datetime64[ns]
You should not see:
print(f['date'].dtype)
# object
The problem is you have incorrectly specified the datetime
format and hidden the error by setting errors='ignore'
. You need '%Y'
for the full year (see Python's strftime
directives):
f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')
errors='coerce'
will give NaN
for non-convertible dates. Or, to raise errors, just omit the errors
parameter altogether.
For such problems, it's good practice to look at f.dtypes
to see whether your type conversion has succeeded. For example, you should see:
print(f['date'].dtype)
# datetime64[ns]
You should not see:
print(f['date'].dtype)
# object
answered Nov 22 at 10:27
jpp
86.4k194998
86.4k194998
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
add a comment |
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
Thank you. It worked. :)
– Nikhil Jagtap
Nov 22 at 10:32
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53428258%2fdate-formatting-and-including-days%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown