2016-10-06 167 views
1

获取我的测试数据:大熊猫从另一列fillna日期

import pandas as pd 

df = {'Id': {1762056: 2.0, 1762055: 1.0}, 
'FillDate': {1762056: Timestamp('2015-08-01 00:00:00'), 1762055:Timestamp('2015-08-01 00:00:00')}, 
'Date': {1762056: nan, 1762055: nan}, 
} 

df = pd.DataFrame(df) 

数据是这样的:

 Id   Date  FillDate 
     1.0  NaN   2015-08-01 
     2.0  NaN   2015-08-01 

因此,为了填补缺失的日期,我做的:

df['Date'].fillna(df['FillDate'], inplace=True) 

这给我

  Id Date     FillDate 
     1.0 1438387200000000000 2015-08-01 
     2.0 1438387200000000000 2015-08-01 

如何获得日期形式

+1

使用'pd.to_datetime()' – MMF

回答

4

Date列这工作:

df['Date'].fillna(pd.to_datetime(df['FillDate']).dt.date, inplace=True) 

这给

 Id Date  FillDate 
     1.0 2015-08-01 2015-08-01 
     2.0 2015-08-01 2015-08-01 
+1

什么版本的熊猫您使用的?这在'0.19.0'中工作,看起来你的'dtype'仍然是数字的,所以它将'datetime'转换为'ns'值,'dt.date'也不是必需的,默认情况下时间分量不会显示,如果它设置为'00:00'即空白 – EdChum

+0

''熊猫== 0.18.1'' – muon

+0

我试过没有''dt.date''发布问题之前,没有工作 – muon