我遇到一个问题,将日期格式从'2022年9月21日04:37:17'更改为'2022-09-21 04:37:17]。我使用的代码是:
import pandas as pd
fileIn = 'C:/Users/xxx.xlsx'
df = pd.read_excel(fileIn, index_col=0)
diaStrava = df['Data da atividade'].str[:2]
mesStrava = df['Data da atividade'].str[6:9]
anoStrava = df['Data da atividade'].str[13:18]
if mesStrava == 'out':
c_mesStrava = '10'
dataStrava = diaStrava + '-' + c_mesStrava + '-' + anoStrava
我得到了错误:
追踪(最近一次通话(:
如果mesStrava=="out":…在非零中引发ValueError(ValueError:序列的真值不明确。使用a.empty、a.bool((、a.item((、.any((或.all((。
有人能帮我吗?感谢
您可以将字符串转换为datetime,然后再转换回字符串,而不是使用字符串操作来转换日期格式。请参阅pd.to_datetime和Series.dt.strftime
---应该有效,尽管这条线可能有问题,因为它不是英文
if mesStrava == 'out':
考虑使用日期解析器来解析非英语日期。
- 首先,创建数据帧
import pandas as pd
df = pd.DataFrame({'Data da atividade':['21 Sep 2022 04:37:17']})
print(df)
- 其次,转移
print(pd.to_datetime(df['Data da atividade']).apply(lambda x: x.strftime("%Y-%m-%d %H:%M:%S")))