【发布时间】:2018-09-28 16:21:36
【问题描述】:
我正在使用几个 pandas 数据帧,每个数据帧都有时间戳,格式如下:“2018-01-01 00:00:00 UTC”。我编写了一个函数,能够扫描数据框的每一列并更改具有这种格式数据的列。函数如下:
def utc_converter(dataframe, timezone):
columns = dataframe.columns.tolist()
for column in columns:
try:
s = pd.to_datetime(dataframe[column], format='%Y-%m-%d %H:%M:%S UTC', utc=True)
except ValueError:
continue
s.dt.tz_convert(timezone)
s = s.dt.strftime('%m/%d/%Y %H:%M:%S')
dataframe[column] = s
dataframe = dataframe.replace(to_replace=pd.NaT, value=np.nan)
return dataframe
出于某种原因,每当我在数据帧上运行该函数时,它只会捕获第一列,而不会遍历其余的任何列。有人知道我做错了什么吗?我现在有点摸不着头脑。
谢谢!
【问题讨论】:
-
用于转换尝试 data.columnname = pd.to_datetime(data['columnname'])
标签: python pandas datetime dataframe