我是熊猫初学者。我想三天或两周或四个月
我有以下数据:
a = [{"content": '11', "time": 1577870427},
{"content": '44', "time": 1577870427},
{"content": '22', "time": 1578043227},
{"content": '33', "time": 1578129627},
{"content": '44', "time": 1578216027},
{"content": '55', "time": 1578302427},
{"content": '66', "time": 1577956827}]
我想要:
2020-01-01: [
{"content": '11', "time": '2020-01-01'},
{"content": '44', "time": '2020-01-01'},
{"content": '22', "time": '2020-01-02'},
]
2020-01-03: [
{"content": '33', "time": '2020-01-03'},
{"content": '44', "time": '2020-01-04'},
]
2020-01-05: [
{"content": '55', "time": '2020-01-05'},
{"content": '66', "time": '2020-01-06'}
]
我的代码
index = pd.to_datetime([i['time'] for i in a], unit='s')
df = pd.Series(a,index)
d1 = {k: v.to_dict('r') for k, v in df.groupby('2d')}
print(d1)
答案 0 :(得分:1)
使用:
#convert values to DataFrame
df = pd.DataFrame(a)
#convert column to datetimes
d = pd.to_datetime(df['time'], unit='s')
#change format of datetimes
df['time'] = d.dt.strftime('%Y-%m-%d')
#create DatetimeIndex
df.index = d
#create nested dictionaries
d = {k.strftime('%Y-%m-%d'): v.to_dict('r') for k, v in df.groupby(pd.Grouper(freq='2D'))}
或者:
d = {k.strftime('%Y-%m-%d'): v.to_dict('r') for k, v in df.resample('2D')}
print (d)
{'2020-01-01': [{'content': '11', 'time': '2020-01-01'},
{'content': '44', 'time': '2020-01-01'},
{'content': '66', 'time': '2020-01-02'}],
'2020-01-03': [{'content': '22', 'time': '2020-01-03'},
{'content': '33', 'time': '2020-01-04'}],
'2020-01-05': [{'content': '44', 'time': '2020-01-05'},
{'content': '55', 'time': '2020-01-06'}]}