【发布时间】:2021-09-17 17:16:06
【问题描述】:
我想选择列并使用参数应用 to_datetime。我有一个使用 lambda 的工作方法,但想了解原因。
设置
d = {'date': ['5/2/2000'], 'date2': ['3/02/2000'], 'date3': ['1-2-2000']}
df = pd.DataFrame(data=d)
print(df.dtypes)
这有效并提供了所需的输出。
df[['date', 'date2', 'date3']] = df[['date', 'date2', 'date3']].apply(lambda x: pd.to_datetime(x, dayfirst=True))
output
date date2 date3
0 2000-02-05 2000-02-03 2000-02-01
这可行,但不带参数,因此不适用于英国日期。
df[['date', 'date2', 'date3']] = df[['date', 'date2', 'date3']].apply(pd.to_datetime)
output (incorrect)
date date2 date3
0 2000-05-02 2000-03-02 2000-01-02
这不起作用,但为什么?
df[['date', 'date2', 'date3']] = df[['date', 'date2', 'date3']].apply(pd.to_datetime(dayfirst=True))
error
TypeError: to_datetime() missing 1 required positional argument: 'arg'
为什么我不能用参数应用 to_datetime? apply 总是这样吗?
【问题讨论】:
标签: python pandas dataframe apply