如何在python中更改时间和转换格式

如何在python中更改时间和转换格式,python,pandas,csv,datetime,Python,Pandas,Csv,Datetime,我们已将格式从UTC转换为欧洲/柏林,但时间不变。我们在ubuntu服务器上使用python和pandas 我们试着运行一个应该改变时间和格式的代码。尽管如此,时间是一样的 import pandas as pd df = pd.read_csv('feeds.csv', date_parser=dateparse) df['created_at'] = df['created_at'].str.replace(' UTC', '') df['created_at'] = pd.to_da

我们已将格式从UTC转换为欧洲/柏林,但时间不变。我们在ubuntu服务器上使用python和pandas

我们试着运行一个应该改变时间和格式的代码。尽管如此,时间是一样的

import pandas as pd 

df = pd.read_csv('feeds.csv', date_parser=dateparse)

df['created_at'] = df['created_at'].str.replace(' UTC', '')
df['created_at'] = pd.to_datetime(df['created_at'])
df['created_at'].dt.tz_localize('UTC').dt.tz_convert('Europe/Berlin').dt.strftime('%Y-%m-%d %H:%M:%S')

df.to_csv('feeds.csv',index=False)


print(df)
时间应该改变,所以12:50:13改为14:50:13


您需要将转换结果分配回列:

df['created_at'] = df['created_at'].dt.tz_localize('UTC').dt.tz_convert('Europe/Berlin').dt.strftime('%Y-%m-%d %H:%M:%S')
您已经在前面两行中这样做了

您可以跳过
dt.tz\u localize()
调用,方法是告诉
pd.to\u datetime()
为您处理此问题:

df['created_at'] = pd.to_datetime(df['created_at'], utc=True)
df['created_at'] = df['created_at'].dt.tz_convert('Europe/Berlin').dt.strftime('%Y-%m-%d %H:%M:%S')
最后,将所有操作连成一个:

df['created_at'] = (
    pd.to_datetime(df['created_at'].str.replace(' UTC', ''), utc=True)
    .dt.tz_convert('Europe/Berlin')
    .dt.strftime('%Y-%m-%d %H:%M:%S')
)
演示:


将其分配回
df['created_at']=df['created_at'].dt.tz_localize('UTC').dt.tz_convert('Europe/Berlin').dt.strftime('%Y-%m-%d%H:%m:%S')
请不要发布代码/数据/回溯的图像。只需复制文本,粘贴到问题中,并将其格式化为代码。另请参阅,以获取关于如何发布问题的非常好的建议。我们不需要CSV输入,我们只需要一个小数据帧。我在回答中创建了一个最小的示例。谢谢,但由于时间关系,您必须等待10分钟,@wwii:-)
>>> import pandas as pd
>>> df = pd.DataFrame({"created_at": ["2019-07-26 12:50:13 UTC", "2019-07-26 13:00:13 UTC"]})
>>> df
                created_at
0  2019-07-26 12:50:13 UTC
1  2019-07-26 13:00:13 UTC
>>> df['created_at'] = (
...     pd.to_datetime(df['created_at'].str.replace(' UTC', ''), utc=True)
...     .dt.tz_convert('Europe/Berlin')
...     .dt.strftime('%Y-%m-%d %H:%M:%S')
... )
>>> df
            created_at
0  2019-07-26 14:50:13
1  2019-07-26 15:00:13