我在熊猫中有以下数据框
code bucket
0 08:30:00-9:00:00
1 10:00:00-11:00:00
2 12:00:00-13:00:00
我要用0
替换第7个字符1
,我想要的数据帧是
code bucket
0 08:30:01-9:00:00
1 10:00:01-11:00:00
2 12:00:01-13:00:00
在大熊猫中怎么做?
答案 0 :(得分:0)
仅使用字符串会损失大量功能。尽管这可能是一次性的操作,但您会发现重复的字符串操作在时间和内存效率方面将很快变得昂贵。
pd.to_datetime
您可以使用datetime
个对象向数据框添加其他系列。下面是一个示例,该示例另外还以您想要的格式创建了object
dtype系列。
# split by '-' into 2 series
dfs = df.pop('bucket').str.split('-', expand=True)
# convert to datetime
dfs = dfs.apply(pd.to_datetime, axis=1)
# add 1s to first series
dfs[0] = dfs[0] + pd.Timedelta(seconds=1)
# create object series from 2 times
form = '%H:%M:%S'
dfs[2] = dfs[0].dt.strftime(form) + '-' + dfs[1].dt.strftime(form)
# join to original dataframe
res = df.join(dfs)
print(res)
code 0 1 2
0 0 2018-10-02 08:30:01 2018-10-02 09:00:00 08:30:01-09:00:00
1 1 2018-10-02 10:00:01 2018-10-02 11:00:00 10:00:01-11:00:00
2 2 2018-10-02 12:00:01 2018-10-02 13:00:00 12:00:01-13:00:00