Assign values to a DataFrame column. Phyton

1

I want to assign values in my DataFrame to a column based on a condition

My data frame is:

a fecha1 fecha2
1 5/5/2018 11:00:00   25/5/2018  16:00:00
2 25/10/2018 10:00:00   15/5/2018  12:00:00
1 15/4/2018 12:00:00   14/9/2013  12:00:00
3 7/11/2017 19:00:00   30/6/2018  19:00:00
4 3/6/2015 17:00:00   31/4/2013  17:00:00
1 9/12/2012 13:00:00   16/5/2014  11:00:00

It would be that when a=1 , fecha2 has to replace fecha1 remaining

a fecha1 fecha2
1 25/5/2018  16:00:00   25/5/2018  16:00:00
2 25/10/2018 10:00:00   15/5/2018  12:00:00
1 14/9/2013  12:00:00   14/9/2013  12:00:00
3 7/11/2017 19:00:00   30/6/2018  19:00:00
4 3/6/2015 17:00:00   31/4/2013  17:00:00
1 16/5/2014  11:00:00   16/5/2014  11:00:00
    
asked by Ro. 22.11.2018 в 13:36
source

1 answer

0

Very good, I'll give you my bit:

1.- I think the date 4/31/2013 5:00:00 PM would have to be 4/30/2013 5:00:00 PM

2.- Here is my code used to reproduce and solve the problem:

import pandas as pd
from datetime import datetime
df = pd.DataFrame({'a': [1, 2, 1, 3, 4, 1], 'fecha1': [datetime(2018, 5, 5, 11), 
 datetime(2018, 10, 25, 10), datetime(2018, 4, 15, 12), datetime(2017, 11, 7, 19),
 datetime(2015, 6, 3, 17), datetime(2012, 12, 9, 13)], 'fecha2': [datetime(2018, 5, 25, 16),
 datetime(2018, 5, 15, 12), datetime(2013, 9, 14, 12), datetime(2018, 6, 30, 19), 
 datetime(2013, 4, 30, 17), datetime(2014, 5, 16, 11)]})
df
Out:
   a              fecha1              fecha2
0  1 2018-05-05 11:00:00 2018-05-25 16:00:00
1  2 2018-10-25 10:00:00 2018-05-15 12:00:00
2  1 2018-04-15 12:00:00 2013-09-14 12:00:00
3  3 2017-11-07 19:00:00 2018-06-30 19:00:00
4  4 2015-06-03 17:00:00 2013-04-30 17:00:00
5  1 2012-12-09 13:00:00 2014-05-16 11:00:00

df.loc[df.a==1, 'fecha1'] = df.loc[df.a==1, 'fecha2']
df
Out:
   a              fecha1              fecha2
0  1 2018-05-25 16:00:00 2018-05-25 16:00:00
1  2 2018-10-25 10:00:00 2018-05-15 12:00:00
2  1 2013-09-14 12:00:00 2013-09-14 12:00:00
3  3 2017-11-07 19:00:00 2018-06-30 19:00:00
4  4 2015-06-03 17:00:00 2013-04-30 17:00:00
5  1 2014-05-16 11:00:00 2014-05-16 11:00:00
    
answered by 22.11.2018 в 16:11