python中的标准日期和时间范围

时间:2017-05-25 08:31:24

标签: python twitter standards

我使用以下代码将str('1495596971')转换为'%Y-%m-%d%H:%M:%S',但无法对整列执行此操作。你可以帮帮我吗?

ho['tweet'] = ho['tweet'].astype(str)
c=ho['tweet']
stddate=c.split('.')[0].split('0')[1]


t=print(
    datetime.datetime.fromtimestamp(
       int(stddate)
    ).strftime('%Y-%m-%d %H:%M:%S')
)

显示此错误: - “系列”对象没有属性“拆分”

输入: -

              tweet
0     1495596971.6034188::automotive auto ebc greens...
1     1495596972.330948::new free stock photo of cit...
2     1495596972.775966::ebay: 1974 volkswagen beetl...
3     1495596975.6460807::cars fly off a hidden spee...
4     1495596978.12868::rt @jiikae: guys i think mar...

我只想要'1495596971','1495596972'等来自列的这些数据,并希望将其转换为标准的日期和时间格式。

2 个答案:

答案 0 :(得分:2)

Pandas系列没有方法split,您可以做的是获取每个项目,然后使用'.'拆分,然后获取str ('1495596971'),转换并格式化它:

import pandas as pd
import datetime
c =  pd.Series(['1495596971.6034188::automotive auto ebc greens','1495596972.330948::new free stock photo of cit','1495596972.775966::ebay: 1974 volkswagen beetl'])
stddate_list = [c[i].split('.')[0] for i in range(len(c))]
print(stddate_list)
t = [datetime.datetime.fromtimestamp(int(stddate)).strftime('%Y-%m-%d %H:%M:%S') for stddate in stddate_list]
print(t)

stddate_listt的输出:

['1495596971', '1495596972', '1495596972']
['2017-05-24 11:36:11', '2017-05-24 11:36:12', '2017-05-24 11:36:12']

答案 1 :(得分:0)

您可以使用Series对象上的apply选项作为列

对系列中的每条记录进行操作
ho['tweet'] = ho['tweet'].astype(str)
c=ho['tweet']
stddate=c.apply(lambda x:x.split('.')[0])