我正在尝试转换"YYYY-MM-DD";格式为";DD-MM-YYYY";但我想保持约会类型,但我无法告诉你为什么?还是我做错了什么?
import moment
df = pd.DataFrame({"Date": ["2022-12-10", "2022-12-11", "2022-12-12"]})
df["Date"] = [moment.date(s).format('D-M-YYYY') for s in df["Date"]]
print(df)
print(df["Date"].dtypes)
Date
0 10-12-2022
1 11-12-2022
2 12-12-2022
object
import pendulum as pdl
df = pd.DataFrame({"Date": ["2022-12-10", "2022-12-11", "2022-12-12"]})
df["Date"] = [pdl.from_format(s, 'YYYY-MM-DD', tz='America/Sao_Paulo').format('D-M-YYYY') for s in df["Date"]]
print(df)
print(df["Date"].dtypes)
Date
0 10-12-2022
1 11-12-2022
2 12-12-2022
object
按照您尝试的解决方案的格式,正确的方法(不是最有效的(是:
import datetime
df["Date"] = [datetime.datetime.strptime(s, '%Y-%m-%d').strftime('%d-%m-%Y') for s in df["Date"]]
如果您需要在解决方案中提高效率,理想的做法是使用矢量化操作,例如:
df['Date'] = pd.to_datetime(df['Date'])
df['Date'] = df["Date"].dt.strftime("%d-%m-%Y")
或者在一行中:
df['Date'] = pd.to_datetime(df['Date']).dt.strftime("%d-%m-%Y")