2017-02-26 15 views
1

我需要一些帮助。我有一个熊猫数据框的索引,这是一个名为“Date Device value”(下面)的列:解析一个数据序列的索引

我想将此索引拆分成不同的列,以便我有一个日期列(索引) ,一列表示一周中的某一天和当时的一列。

我试图使用不同的方法与strftime解析时间,但它不起作用。

这是一个csv,我已经转换为具有日期列作为索引。

Thx a ton for your help!

DateDeviceValue      
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536448.0 On 
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536449.0 Off 
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536450.0 On 
11/27/15 17:54 On/Off Chaudière_logement 4.0 4.0 536451.0 Off 
+0

能否请您格式化代码/数据段? http://stackoverflow.com/help/formatting – tschale

回答

0

创建从索引其铸造为datetime新列,它可能会自动推断但我更准确地指定格式。 (检查我的格式字符串是否正确)

是您的DateDeviceValue日期时间索引?这些值是相同的?

如果尝试这种

df['Time'],df['Date']= df.index.apply(lambda x:x.time()), df.index.apply(lambda x:x.date()) 

别的尝试这个

df['Time'],df['Date']= df['dt_col'].apply(lambda x:x.time()), df['dt_col'].apply(lambda x:x.date()) 
0

@Kickaha已经回答了同样的,我只是想更多的将其添加为如何下手。

确保您在阅读csv文件时,解析列DateDeviceValue

df = pd.read_csv("foo.csv", parse_dates=['DateDeviceValue']) 

DateDeviceValue列创建通过解析日期和时间两个新列,并删除它,如果你不想要它了。正如你所说的你想要日期作为索引,将其设置为索引。

df['TIME'] = df['DateDeviceValue'].apply(lambda x: x.time()) 
df['DATE'] = df['DateDeviceValue'].apply(lambda x: x.date()) 
del df['DateDeviceValue'] 
df.set_index('DATE', inplace=True) 

最终数据框的样子:

DATE  | A  |   B  | C | D | E | F | TIME 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536448.0| On |17:54:00 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536449.0| Off|17:54:00 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536450.0| On |17:54:00 
2015-11-27| On/Off |Chaudière_logement |4.0 |4.0 |536451.0| Off|17:54:00 
+0

thx一吨Kickaha。你能帮我做点什么吗? – chloe

+0

我想建立一个直方图,显示每次点击和关闭的点击次数。 – chloe

+0

我发布了另一个关于直方图的问题,如果你可以帮忙吗? – chloe