Python / Pandas Dataframe更改特定值

时间:2016-02-17 20:04:03

标签: pandas

我在DataFrame中有一个Start_Time (datatype: Object)列,其值为: -

6:00:00
7:00:00
8:01:00 

并希望将其更改为

6:30:00
7:30:00
8:30:00

1 个答案:

答案 0 :(得分:0)

也许您可以使用to_datetimetime

print df
         a
0  6:00:00
1  7:00:00
2  8:01:00

b = pd.to_datetime(df['a']) + pd.Timedelta(minutes=30) 
print b
0   2016-02-17 06:30:00
1   2016-02-17 07:30:00
2   2016-02-17 08:31:00
Name: a, dtype: datetime64[ns]

print b.dt.time
0    06:30:00
1    07:30:00
2    08:31:00
Name: a, dtype: object

print b.dt.time.values
[datetime.time(6, 30) datetime.time(7, 30) datetime.time(8, 31)]

但如果您需要重置minutes

print df
         a
0  6:00:00
1  7:00:00
2  8:01:00

df['a'] = pd.to_datetime(df['a']) 
print df 
                    a
0 2016-02-17 06:00:00
1 2016-02-17 07:00:00
2 2016-02-17 08:01:00

df['a'] = df['a'].map(lambda x: datetime.datetime(x.year, x.month, x.day, x.hour)) 
print df
                    a
0 2016-02-17 06:00:00
1 2016-02-17 07:00:00
2 2016-02-17 08:00:00

b = df['a'] + pd.Timedelta(minutes=30) 

print b.dt.time
0    06:30:00
1    07:30:00
2    08:30:00
Name: a, dtype: object

print b.dt.time.values
[datetime.time(6, 30) datetime.time(7, 30) datetime.time(8, 30)]