以下是示例DataFrame,它有两列。第一个是角色,第二个是日期时间。
df = DataFrame([['960958','2013-01-24 00:00:00'], ['960918','2013-01-24 00:00:00']],columns=['col1','col2'])
df.col2 = pd.to_datetime(df.col2,format='%Y-%m-%d %H:%M:%S')
现在我正在尝试打印数据,第一行正确打印,因为发送行打印不正确,因为col1正在转换为日期和打印。
def printdata(line):
print line
df.apply(printdata,axis=1)
请帮助解决这个问题,我的编码出了什么问题以及如何纠正错误。
这是下面的输出
#Output
col1 960958
col2 2013-01-24 00:00:00
Name: 0, dtype: object
col1 1996-09-18
col2 2013-01-24
Name: 1, dtype: datetime64[ns]
Out[290]:
0 None
1 None
dtype: object
如果您观察到输出线3和第6行dtype不同而第1行正确打印在第4行,则打印日期不正确。它应该与第1行打印一样。
答案 0 :(得分:1)
从0.16.2
IIRC这与here相同,并在0.16.0中修复
In [5]: df = DataFrame([['960958','2013-01-24 00:00:00'], ['960918','2013-01-24 00:00:00']],columns=['col1','col2'])
In [6]: df.col2 = pd.to_datetime(df.col2,format='%Y-%m-%d %H:%M:%S')
In [7]: In [6]: def printdata(line):
...: print line
...:
In [8]: In [7]: df.apply(printdata,axis=1)
col1 960958
col2 2013-01-24 00:00:00
Name: 0, dtype: object
col1 960918
col2 2013-01-24 00:00:00
Name: 1, dtype: object
Out[8]:
0 None
1 None
dtype: object