我有按日期索引的数据,其中时间作为每一行的单独列。比较起来并不理想。当时间列为float64时, RecordDate 是一个对象。
我最初的想法是将其转换为日期时间并进行合并,但是,我知道由于时间是列标题,因此无法正常工作。
这是我的数据集的一个示例:
RecordDate T0000 T0030 T0100 T0130 T0200 T0230 T0300
15/04/2015 0 0 0 0 0 0 0
16/04/2015 0 0 0 0 0 0 0
17/04/2015 0 0 0 0 0 0 0
18/04/2015 0 0 0 0 0 0 0
这是我理想结果的一个例子:
RecordDate Value
15/04/2015 00:00 0
15/04/2015 00:30 0
15/04/2015 01:00 0
任何想法都值得赞赏!
答案 0 :(得分:2)
您可以使用pd.DataFrame.melt
方法。
例如以下代码
df = pd.DataFrame({
"RecordDate": ["15/04/2015", "16/04/2015"],
"T0000": [1, 2],
"T0030": [3, 4]
})
df.melt(id_vars=["RecordDate"], var_name="RecordHour")
提供输出
RecordDate RecordHour value
0 15/04/2015 T0000 1
1 16/04/2015 T0000 2
2 15/04/2015 T0030 3
3 16/04/2015 T0030 4
然后将RecordDate
和RecordHour
列合并为一个datetime
列。