我发现我们可以通过以下方式在Pandas DataFrame中创建日期时间列:
>>> dt1 = pandas.DatetimeIndex(["2016-03-04 15:01:49",
"2016-03-05 23:54:22",
"2016-04-03 21:22:08",
"2016-04-03 21:22:08",
"2016-03-05 23:54:22"])
>>> df1 = pandas.DataFrame([["firefly", 37],
["wood", 47],
["snowflake", 12],
["waterfall", 67],
["wind", 208]],
columns = ["what", "count"])
>>> df1['when_last'] = dt1
df1
what count when_last
0 firefly 37 2016-03-04 15:01:49
1 wood 47 2016-03-05 23:54:22
2 snowflake 12 2016-04-03 21:22:08
3 waterfall 67 2016-04-03 21:22:08
4 wind 208 2016-03-05 23:54:22
这是我的问题:
这是一个合法的结构吗?我的一部分困惑是:DatetimeIndex
应该能够容纳重复日期和无序日期,当我们没有把它作为索引时?
这是我的用例,促成了上面的实验: 我有一个我想用Pandas处理的表,它有很多(但是 不是太多的领域,大约40多个。 该表本身包含数万条记录或更多。 该表的原始格式为文本CSV。 处理基本上与SQL类分析一致 (过滤,加入,排序等),熊猫拥有不错的能力。 在这些字段中有几个日期时间字段(存储为UNIX CSV文件中的时间戳),其中三个或四个。 这些都不适合用作Dataframe行的索引; 它们是与属于记录的几个事件相关的日期,和 它们可以有重复,因为事件可以完全标记 相同的日期时间值。
有几个stackoverflow用户建议,如果我们一个一个地解析日期,直接用read_csv
date_parser
参数解析日期时间实际上很差(并且性能也可能是平庸的),比如this one。鉴于原始列只包含UNIX时间戳,我们应该能够获得高性能。另一个问题是to_datetime
不支持将时区归于UNIX时间戳。上面的示例没有时区,但我希望将其包含在我的实际案例中。
答案 0 :(得分:0)
这是一个合法的构造吗?
是