擅长:python、mysql、java
<p>应用<code>dateutil.parser</code>,另请参阅我的答案<a href="https://stackoverflow.com/a/57014055/3944322">here</a>:</p>
<pre><code>import dateutil.parser as dparser
def myparser(x):
try:
return dparser.parse(x)
except:
return None
df = pd.DataFrame( {'time': ['2018-12-24 17:00:00', '20181225', 'no date at all'], 'countMessageIn': [1,2,3]})
df.time = df.time.apply(myparser)
df = df[df.time.notnull()]
</code></pre>
<p>输入:</p>
<pre><code> time countMessageIn
0 2018-12-24 17:00:00 1
1 20181225 2
2 no date at all 3
</code></pre>
<p>输出:</p>
<pre><code> time countMessageIn
0 2018-12-24 17:00:00 1
1 2018-12-25 00:00:00 2
</code></pre>
<p>与Gustavo的解决方案不同,它可以处理没有可识别日期的行,并根据您的问题过滤掉这些行。你知道吗</p>
<p>如果原始时间列可能包含日期本身以外的其他文本,请包含<code>fuzzy=True</code>参数,如<a href="https://stackoverflow.com/a/57014055/3944322">here</a>所示。你知道吗</p>