我有一本 df 字典:DataFrameDict:'A': date_time begin end 2019-10-21 07:39:07.927729 NaT 2019-10-21 07:42:24.747350 2019-10-21 07:39:26.356716 NaT 2019-10-21 07:42:02.574268 2019-10-21 07:40:03.235327 NaT 2019-10-21 07:42:02.222821'B': date_time begin end 2019-10-21 07:39:07.927729 2019-10-21 07:42:24.747350 NaT 2019-10-21 07:39:26.356716 NaT 2019-10-21 07:42:02.574268 2019-10-21 07:40:03.235327 NaT 2019-10-21 07:42:02.222821 我想这样做:对于每个数据帧的每一行,如果 begin[i] == NaT 则 begin[i] = date_time[i] 否则: end[i] = date_time[i]。结果必须是:DataFrameDict:'A': date_time begin end 2019-10-21 07:39:07.927729 2019-10-21 07:39:07.927729 2019-10-21 07:42:24.747350 2019-10-21 07:39:26.356716 2019-10-21 07:39:26.356716 2019-10-21 07:42:02.574268 2019-10-21 07:40:03.235327 2019-10-21 07:40:03.235327 2019-10-21 07:42:02.222821'B': date_time begin end 2019-10-21 07:39:07.927729 2019-10-21 07:42:24.747350 2019-10-21 07:39:07.927729 2019-10-21 07:39:26.356716 2019-10-21 07:39:26.356716 2019-10-21 07:42:02.574268 2019-10-21 07:40:03.235327 2019-10-21 07:40:03.235327 2019-10-21 07:42:02.222821 数据结果不正确。
1 回答
![?](http://img1.sycdn.imooc.com/545862e700016daa02200220-100-100.jpg)
至尊宝的传说
TA贡献1789条经验 获得超10个赞
我们来试试这个功能:
def fill_date(df):
mask = df['begin'].isna()
df.loc[mask,'begin'] = df['date_time']
df.loc[~mask, 'end'] = df['date_time']
for df in [A,B]: fill_date(df)
添加回答
举报
0/150
提交
取消