我正在一张桌子上阅读pandas
,其中一列的日期格式为 YYYYMMMDD。到目前为止,在我的所有尝试中,它都是作为数字列读入的。
我可以先用笨重的代码正确地消化它(尽管很慢),但随后当前版本会以我不理解的方式出现问题。
所以,这有效:
treatments['month'] = treatments['INDATUMA'] % 10000
treatments['day'] = treatments['INDATUMA'] % 100
treatments['month'] = (treatments['month']-treatments['day'])/100
(虽然上次是在较小的数据帧中运行的,但当前版本是在所有数据帧的串联上运行的。在较小的测试数据中,代码仍然运行良好,并且在整个数据上中断。)
这打破了:
all_treatments['month'] = all_treatments.INDATUMA % 10000 // 100
这是错误消息:
File "treatments2_noiopro.py", line 92, in <module>
all_treatments['month'] = all_treatments.INDATUMA % 10000 // 100
File "/home/seidav/anaconda/lib/python2.7/site-packages/pandas/core/ops.py", line 532, in wrapper
return left._constructor(wrap_results(na_op(lvalues, rvalues)),
File "/home/seidav/anaconda/lib/python2.7/site-packages/pandas/core/ops.py", line 479, in na_op
result[mask] = op(x[mask], y)
TypeError: not all arguments converted during string formatting
我在Linux下使用版本pandas 0.16.2 np19py26_0和python 2.7.10 0。