上周,以下代码可以很好地将时间戳转换为 DataFrame 中的字符串:
df.at[i, 'VB12.GMA_DOC']
Timestamp('2022-01-12 00:00:00')
len_df = len(df.index)
df['GMA_DOC'] = ''
for i in range(0,len_df):
df.at[i, 'VB12.GMA_DOC'] = df.at[i, 'VB12.GMA_DOC'].strftime('%Y-%m-%d')
今天,没有更改库或代码的其他部分,我有错误:
ValueError: cannot set a Timestamp with a non-timestamp str
我注意到直接从shell没有问题:
df.at[i, 'VB12.GMA_DOC'].strftime('%Y-%m-%d')
'2022-01-12'
经过一些尝试后,我解决了修改代码如下:
len_df = len(df.index)
df['GMA_DOC'] = ''
for i in range(0,len_df):
df.at[i, 'GMA_DOC'] = df.at[i, 'VB12.GMA_DOC'].strftime('%Y-%m-%d')
del df['VB12.GMA_DOC']
df['VB12.GMA_DOC'] = df['GMA_DOC']
del df['GMA_DOC']
问题显然是将 df_string 直接分配给前一个 df_timestamp 列。
这是正常的还是您看到更好的解决方案来避免错误?