Pandas pd.to_datetime仅保留时间,不保留日期

10

我有一个数据框(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将“time”列转换为日期时间格式。

代码如下:

  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个回答

13

试一试

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)

只需执行 df.set_index('time',inplace=True)。 - tawab_shakeel
1
@anky_91 我已经更新了代码,感谢您的反馈。 - tawab_shakeel
1
在进行其他操作之前,@XYXUE请执行df.reset_index(inplace=True) - Sid
@XYXUE,你遇到了什么问题? - tawab_shakeel
@XYXUE 您好,批准此帖子以便更多人受益。 - tawab_shakeel
显示剩余9条评论

0
我应该在评论中写这个答案,但我找不到如何用正确的格式粘贴我的代码到评论中。 我在谷歌上找到了这个答案: https://meta.stackexchange.com/questions/74784/how-do-i-add-code-while-writing-comments 感谢 @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())
 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接