gpt4 book ai didi

python - Pandas to_datetime 在非美国日期上的行为不一致

转载 作者:行者123 更新时间:2023-12-02 02:54:49 29 4
gpt4 key购买 nike

我对 pandas to_datetime 在非美国日期的行为感到困惑。

在这个简单的例子中,Pandas 正确地推断出第 2 行和第 3 行的月份,但在第 1 行和第 4 行失败。

显然它将第 2 行和第 3 行视为 dd/mm/yyyy 日期(因为 13 和 27 显然不能是月份),但将其余日期视为 mm/dd/yyyy.

我的期望是 to_datetime 会从整个系列中推断出来,然后对每个条目都一视同仁。

import pandas as pd 
results = pd.DataFrame()

european_dates = pd.Series(['05/04/2007', # <-- April 5th, 2007
'13/04/2006', # <-- April 13th, 2006
'27/12/2014', # <-- December 27th, 2014
'02/07/2010']) # <-- July 2nd, 2010

# note: the same happens with infer_datetime_format=False
inferred_dates = pd.to_datetime(european_dates,
infer_datetime_format=True)

results['day'] = inferred_dates.dt.day
results['month'] = inferred_dates.dt.month
results['year'] = inferred_dates.dt.year

results

enter image description here

注意:我知道 to_datetime 有一个 dayfirst 参数和一个 format 参数,我的问题主要是关于为什么 infer_datetime_format 在这种微不足道的情况下失败。

最佳答案

to_datetime 中使用 dayfirst

european_dates = pd.Series(['05/04/2007',   # <-- April 5th, 2007
'13/04/2006', # <-- April 13th, 2006
'27/12/2014', # <-- December 27th, 2014
'02/07/2010']) # <-- July 2nd, 2010
inferred_dates = pd.to_datetime(european_dates,dayfirst =True)
results = pd.DataFrame()
results['day'] = inferred_dates.dt.day
results['month'] = inferred_dates.dt.month
results['year'] = inferred_dates.dt.year
results
Out[109]:
day month year
0 5 4 2007
1 13 4 2006
2 27 12 2014
3 2 7 2010

关于python - Pandas to_datetime 在非美国日期上的行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50033145/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com