熊猫pd.to_datetime只保留时间没有日期

时间:2019-06-29 10:36:01

标签: python pandas datetime

我有一个数据框(Pandas),其列表示日期,格式如下:

import pandas as pd
import tushare as ts

data = ts.get_tick_data('600030',date='2019-06-28',src='tt') [['time','price','change','volume','amount']]
print(data.head())

具体来说,我想使用pd.to_datetime将“时间”列转换为日期时间。

代码为:

  import pandas as pd
  import tushare as ts

  data = ts.get_tick_data('600030',date='2019-06-28',src='tt') [['time','price','change','volume','amount']]
  data.index=pd.to_datetime(data['time'])
  del data['time']
  print(data.head())

结果如下:

                           price  change  volume    amount
   time                                                
   2019-06-29 09:25:04  23.85   -0.07    6825  16279485
   2019-06-29 09:30:02  23.85    0.00    2736   6529832
   2019-06-29 09:30:05  23.85    0.00    3964   9459955
   2019-06-29 09:30:08  23.85    0.00     665   1585346
   2019-06-29 09:30:11  23.87    0.02     348    830136

我只想要具有datetime样式的时间,而不想要日期。 像这样:

          price  change  volume    amount
time                                     
09:25:04  23.85   -0.07    6825  16279485
09:30:02  23.85    0.00    2736   6529832
09:30:05  23.85    0.00    3964   9459955
09:30:08  23.85    0.00     665   1585346
09:30:11  23.87    0.02     348    830136

所以我需要帮助。

2 个答案:

答案 0 :(得分:4)

尝试

df = pd.DataFrame(data={'date':['2019-06-29 09:25:04','2019-06-29 09:30:02'],
                       'col2':[2,3]})

df['time'] = pd.to_datetime(df['date']).dt.time

如果要将其作为索引,则只需

df.set_index('time',inplace=True)

答案 1 :(得分:0)

我应该在注释中写下这个答案,但是我找不到如何以正确的格式将代码粘贴到注释中。 我找到了Google的答案,有人这样告诉我: https://meta.stackexchange.com/questions/74784/how-do-i-add-code-while-writing-comments

为什么STACK OVERFLOW网站不能像这样:我可以同时用代码编写答案。

所以我必须将正确格式的代码粘贴到我的问题区域:

谢谢@tawab_shakeel,在他的帮助下我解决了这个问题。 代码如下:

import pandas as pd
import tushare as ts

data = ts.get_tick_data('600030',date='2019-06-28',src='tt'[['time','price','change','volume','amount']]
data.set_index(data['time'],inplace=True)
data.index=pd.to_datetime(data['time']).dt.time
del data['time']

# data = pd.DataFrame(data={'date':['2019-06-29 09:25:04','2019-06-29 09:30:02'],
#                        'col2':[2,3]})

# data['time'] = pd.to_datetime(data['date']).dt.time

print(data.head())