擅长:python、mysql、java
<p>我知道这很古老,但我相信正确的(最干净的)方法是下面的一行:</p>
<pre><code>calls['DATE'].apply(lambda x: x.timestamp())
</code></pre>
<p>这假定<code>calls['DATE']</code>是<code>datetime64[ns]</code>类型。如果不是,请将其转换为:</p>
<pre><code>pd.to_datetime(calls['DATE'], format="%Y-%m-%d %H:%m:00.000")
</code></pre>
<p><strong>解释</strong></p>
<p>要获取<code>pd.Timestamp</code>的历元值(以秒为单位),请使用:</p>
<pre><code>pd.Timestamp('20200101').timestamp()
</code></pre>
<p>这应该给你<code>1577836800.0</code>。如果需要,可以将其转换为<code>int</code>。它之所以是浮点,是因为任何亚秒时间都将是小数部分</p>
<p>为完整起见,您还可以使用以下方法获取原始历元值(以纳秒为单位):</p>
<pre><code>pd.Timestamp('20200101').value
</code></pre>
<p>给出15778368000000000,即上述日期的纪元。<code>.value</code>属性是自epoch以来的纳秒数,所以我们除以1e6得到毫秒。如果希望第一次调用以秒为单位,则除以1e9</p>