[英]Pandas date_range to nested json
我想從pandas date_range獲得一個嵌套的dict。 字典的鍵應該是日期和值,是所選范圍內所有值的列表。 例如:
import numpy as np
import pandas as pd
import arrow
mymatrix = pd.DataFrame([
[pd.Timestamp(arrow.get('01-01-2017 01:01:00', 'DD-MM-YYYY HH:mm:ss').naive), 5],
[pd.Timestamp(arrow.get('01-01-2017 00:02:00', 'DD-MM-YYYY HH:mm:ss').naive), 10],
[pd.Timestamp(arrow.get('01-01-2017 00:03:00', 'DD-MM-YYYY HH:mm:ss').naive), 20],
[pd.Timestamp(arrow.get('01-01-2017 00:04:00', 'DD-MM-YYYY HH:mm:ss').naive), 30]
])
我希望得到類似的東西:
分鍾:
{
'01-01-2017 01:01:00': [5],
'01-01-2017 00:02:00': [10],
'01-01-2017 00:03:00': [20],
'01-01-2017 00:04:00': [30]
}
按小時:
{
'01-01-2017 01': [5],
'01-01-2017 00: [10, 20, 30]
}
對於大型數據集,所以我想避免循環,我想直接在pandas / numpy中這樣做。
有誰能夠幫助我。
先感謝您
嘗試這個:
In [46]: x
Out[46]:
0 1
0 2017-01-01 01:01:00 5
1 2017-01-01 00:02:00 10
2 2017-01-01 00:03:00 20
3 2017-01-01 00:04:00 30
In [47]: x.groupby(x[0].dt.minute)[1].apply(list)
Out[47]:
0
1 [5]
2 [10]
3 [20]
4 [30]
Name: 1, dtype: object
In [48]: x.groupby(x[0].dt.hour)[1].apply(list)
Out[48]:
0
0 [10, 20, 30]
1 [5]
Name: 1, dtype: object
不知道箭頭是什么,但我會嘗試將所有內容保存在pandas / numpy中。
mymatrix = pd.DataFrame([
[pd.Timestamp('01-01-2017 01:01:00'), 5],
[pd.Timestamp('01-01-2017 00:02:00'), 10],
[pd.Timestamp('01-01-2017 00:03:00'), 20],
[pd.Timestamp('01-01-2017 00:04:00'), 30]])
然后,您可以設置索引並使用resample
。
df = mymatrix.set_index(0)
1
0
2017-01-01 01:01:00 5
2017-01-01 00:02:00 10
2017-01-01 00:03:00 20
2017-01-01 00:04:00 30
df.resample('H').apply(lambda x: x.values.tolist()).to_dict()[1]
{Timestamp('2017-01-01 00:00:00'): [10, 20, 30],
Timestamp('2017-01-01 01:00:00'): [5]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.