- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在 csv 文件中有数据,日期以标准英国格式存储为字符串 - %d/%m/%Y
- 表示它们看起来像:
12/01/2012
30/01/2012
以上示例代表 2012 年 1 月 12 日和 2012 年 1 月 30 日。
当我使用 pandas 0.11.0 版导入此数据时,我应用了以下转换:
import pandas as pd
...
cpts.Date = cpts.Date.apply(pd.to_datetime)
但它转换的日期不一致。使用我现有的示例,12/01/2012 将转换为代表 2012 年 12 月 1 日的日期时间对象,但 30/01/2012 转换为 2012 年 1 月 30 日,这正是我想要的。
看完this question我试过了:
cpts.Date = cpts.Date.apply(pd.to_datetime, format='%d/%m/%Y')
但结果完全一样。 source code表明我做对了,所以我很茫然。有谁知道我做错了什么?
最佳答案
您可以使用 read_csv
中的 parse_dates
选项在读取数据时直接进行转换。
这里的诀窍是使用 dayfirst=True
来指示您的日期从一天开始,而不是从月份开始。更多信息请看这里:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html
当你的日期必须是索引时:
>>> import pandas as pd
>>> from StringIO import StringIO
>>> s = StringIO("""date,value
... 12/01/2012,1
... 12/01/2012,2
... 30/01/2012,3""")
>>>
>>> pd.read_csv(s, index_col=0, parse_dates=True, dayfirst=True)
value
date
2012-01-12 1
2012-01-12 2
2012-01-30 3
或者当您的日期只是在某个列中时:
>>> s = StringIO("""date
... 12/01/2012
... 12/01/2012
... 30/01/2012""")
>>>
>>> pd.read_csv(s, parse_dates=[0], dayfirst=True)
date
0 2012-01-12 00:00:00
1 2012-01-12 00:00:00
2 2012-01-30 00:00:00
关于python - 使用 pandas.to_datetime 转换时指定日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16672237/
ruby 1.9.3dev(2011-09-23 修订版 33323)[i686-linux] 轨道 3.0.20 最近为什么在与 DateTime on Rails 相关的 RSpecs 项目上工作
我在这里过得很艰难。 我的 DataFrame 看起来像这样 Purchase_Date Customer_ID Gender 0 2012-12-18 00:00:00
我是 Pandas 的新手,当我运行下面的代码时,我得到了不同的结果: import pandas as pd ts = pd.to_datetime("2014-6-10 10:10:10.30",
我读入了一个包含日期的 CSV 文件。有些日期可能格式错误,我想找到那些。通过以下方法,我会期望第二行是NaT。但是无论我设置 infer_datetime_format 还是 exact,panda
我从一个 csv 文件中提取了下表: 时间戳 user_id 成本 val1 2011 年 1 月 1 日 01/07/2012 01/09/2013 01/02/2011 为此,我使用了以下语句:
我有一个看起来像这样的数据集: date id 0 2014-01-01 11000929 1 2014-01-01 11000190 2 2014-01-01
晚上好, 我有一个数据框(Pandas),其中有一列代表日期,格式如下: print(df["date"]) 14/01/18 12:47 14/01/18 12:48 14/01/18 12:50
我对 pandas to_datetime 在非美国日期的行为感到困惑。 在这个简单的例子中,Pandas 正确地推断出第 2 行和第 3 行的月份,但在第 1 行和第 4 行失败。 显然它将第 2
我有一个看起来像这样的数据集: date id 0 2014-01-01 11000929 1 2014-01-01 11000190 2 2014-01-01
我对这个标题表示歉意,但无法找到更好的措辞方式。 当我尝试运行时 pd.to_datetime(df['TimeStamp'], format='%Y-%m-%d %H:%M:%S.%f') 我收到以
我正在使用 pd.to_datetime 将字符串转换为 datetime; df = pd.DataFrame(data={'id':['DD-83']}) pd.to_datetime(df['i
我有以下数据框: month value 0 1949-01 3 1 1949-02 4 2 1949-03 5 df['month'] = pd.to_
我有一个 df,其条目主要是 'yyyymmdd' 日期字符串,但也有一些 'nan' 值。请注意,这里这些'nan'是字符串而不是浮点nan。现在我想将 df 中的所有日期字符串转换为 pandas
将三列转换为日期时间时,如何删除多索引列中的级别?下面的示例仅包含三列,而在我的日期框中当然还有更多列,并且其他列使用两个级别名称。 >>> import pandas as pd >
我有一个数据框,其中包含 YYYYMM 形式的日期(例如 201704)。 尝试将其转换为日期时间类型: data['ym'] = pd.to_datetime(data['ym'],format="
我正在阅读两种非常相似的 csv 文件。它们的长度大致相同,为 20 000 行。每条线代表每秒记录的参数。因此,第一列是时间戳。 在第一个文件中,模式如下:2018-09-24 15:38 在第二个
我有一个包含日期列的数据集: cod date value 0 1O8 2015-01-01 00:00:00 2.1 1 1
我正在尝试将一列 str 类型转换为 datetime 类型。但是当我写代码时: df.timeStamp = df.timeStamp.to_datetime 它只是告诉我 AttributeErr
我的数据框有一个“日期”列,它是对象类型,但我想将它转换为 pandas 时间序列。所以我正在使用 pd.to_datetime 函数。此函数正在转换数据类型,但输出不稳定。 代码: x1['TS']
有一个这样的 df: Dat 10/01/2016 11/01/2014 12/02/2013 “Dat”列具有对象类型,因此我尝试使用 to_datetime () pandas 函数将其切换为日期
我是一名优秀的程序员,十分优秀!