回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有以下Python2.7中的Pandas数据框。</p>
<pre><code>import pandas as pd
trial_num = [1,2,3,4,5]
sail_rem_time = ['11:33:11','16:29:05','09:37:56','21:43:31','17:42:06']
dfc = pd.DataFrame(zip(*[trial_num,sail_rem_time]),columns=['Temp_Reading','Time_of_Sail'])
print dfc
</code></pre>
<p>数据帧如下所示:</p>
<pre><code> Temp_Reading Time_of_Sail
1 11:33:11
2 16:29:05
3 09:37:56
4 21:43:31
5 17:42:06
</code></pre>
<p>此数据帧来自一个*.csv文件。我使用Pandas将*.csv文件作为Pandas数据帧读取。当我使用<code>print dfc.dtypes</code>时,它表明列<code>Time_of_Sail</code>具有数据类型<code>object</code>。我想将此列转换为<code>datetime</code>数据类型,但我只想要时间部分-我不想要年、月、日。</p>
<p>我可以试试这个:</p>
<pre><code>dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
</code></pre>
<p>但问题是当我运行<code>print dfc.dtypes</code>时,它仍然显示列<code>Time_of_Sail</code>是<code>object</code>。</p>
<p>是否有方法将此列转换为只有时间的datetime格式?</p>
<p><strong>附加信息:</strong></p>
<p>要创建上述数据帧和输出,也可以:</p>
<pre><code>import pandas as pd
trial_num = [1,2,3,4,5]
sail_rem_time = ['11:33:11','16:29:05','09:37:56','21:43:31','17:42:06']
data = [
[trial_num[0],sail_rem_time[0]],
[trial_num[1],sail_rem_time[1]],[trial_num[2],sail_rem_time[2]],
[trial_num[3],sail_rem_time[3]]
]
dfc = pd.DataFrame(data,columns=['Temp_Reading','Time_of_Sail'])
dfc['Time_of_Sail'] = pd.to_datetime(dfc['Time_of_Sail'])
dfc['Time_of_Sail'] = [time.time() for time in dfc['Time_of_Sail']]
print dfc
print dfc.dtypes
</code></pre>