将pandas DateTimeIndex转换为(可迭代的)Unix时间的惯用方法是什么?这可能不是要走的路:
[time.mktime(t.timetuple()) for t in my_data_frame.index.to_pydatetime()]
Run Code Online (Sandbox Code Playgroud) 我想知道为什么repr(int)比快str(int).使用以下代码段:
ROUNDS = 10000
def concat_strings_str():
return ''.join(map(str, range(ROUNDS)))
def concat_strings_repr():
return ''.join(map(repr, range(ROUNDS)))
%timeit concat_strings_str()
%timeit concat_strings_repr()
Run Code Online (Sandbox Code Playgroud)
我得到了这些时间(python 3.5.2,但与2.7.12的结果非常相似):
1.9 ms ± 17.9 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
1.38 ms ± 9.07 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Run Code Online (Sandbox Code Playgroud)
如果我走在正确的道路上,同样的功能long_to_decimal_string就会在引擎盖下面调用.
我错了什么或者我还缺少什么?
更新:这可能没有什么用int的__repr__或__str__方法,但之间的差异repr()和str(),如int.__str__和 …
我正在将一个python库从python 2移植到一个代码库(2.6,2.7和3.3+)中的python 2和3.剩下的主要问题是很多测试使用这样的东西:
def test(self):
example = {u'foo': u'bar'}
self.assertEqual(str(example), "{u'foo': u'bar'}")
Run Code Online (Sandbox Code Playgroud)
它在python 2中工作,但在python3中引发异常:
AssertionError: "{'foo': 'bar'}" != "{u'foo': u'bar'}"
Run Code Online (Sandbox Code Playgroud)
除了"测试不同"之外,还有一种处理这些问题的标准方法吗?超载__repr__?