使用pandas DataFrame df
:
x y
0 29-04-2014 07:40:52 07:40:52
1 29-04-2014 07:59:25 07:15:00
2 NaN NaN
3 29-04-2014 08:16:12 07:45:00
4 09-05-2014 08:19:14 07:30:00
5 23-04-2014 08:27:16 08:30:00
6 29-04-2014 08:37:16 07:00:00
7 NaN NaN
8 29-04-2014 08:41:16 07:30:00
9 25-03-2014 08:42:16 07:30:00
哪些列x
包含Date-Month-Year Hour:Minute:Second
和y
存储Hour:Minute:Second
,如何只提取一个:
29
的日期[{x
,{0}},04
列的{April
或{0}} x
个月,29-04
栏中的{29-April
或{0}} {0}},x
和07-40
x
]
醇>
我使用
从文本文件导入了DataFrame y
但它最初来自MS Excel或MS Access。
当我运行df = pd.read_table("C:\data.txt, sep= '\t'")
时,我得到了
df.dtypes
我在Python x object
y object
dtype: object
中使用Pandas版本0.14.1
。
示例DataFrame
3.4
答案 0 :(得分:2)
我认为Pandas的方法是将x作为索引,然后你可以使用一些简单的方法来提取你想要的东西。非Pandas方式是使用datetime模块。
Pandas方式......对于背景,您可以阅读documentation周围的时间序列数据,这是非常好的。
设置一些示例数据:
n = 10
df = pd.DataFrame(pd.date_range('1/1/2000', periods=n))
df.columns = ['x']
df['z'] = rand(n)
df.set_index('x', inplace=True)
print df
z
x
2000-01-01 0.863064
2000-01-02 0.980083
2000-01-03 0.278810
2000-01-04 0.960890
2000-01-05 0.309591
2000-01-06 0.662498
2000-01-07 0.802367
2000-01-08 0.403791
2000-01-09 0.981172
2000-01-10 0.342935
请注意,您的数据不会设置为x作为索引。这是重要的一步。
将日期作为时间段后,您可以访问自己的日期:
df['d'] = df.index.day
df['m'] = df.index.month
df['y'] = df.index.year
print df
z y d m
x
2000-01-01 0.863064 2000 1 1
2000-01-02 0.980083 2000 2 1
2000-01-03 0.278810 2000 3 1
2000-01-04 0.960890 2000 4 1
2000-01-05 0.309591 2000 5 1
2000-01-06 0.662498 2000 6 1
2000-01-07 0.802367 2000 7 1
2000-01-08 0.403791 2000 8 1
2000-01-09 0.981172 2000 9 1
2000-01-10 0.342935 2000 10 1