在“日期”和“ UID”列中具有以下具有重复值的数据框:
{{ response.data}}
如果在同一日期出现重复的UID,则要创建如下所示的内容:
Date UID Score
2018-08-31 A 5
2018-08-31 B 3
2018-08-31 C 4
2018-05-31 A 4
2018-05-31 C 2
2018-05-31 A 4
2018-05-31 B 1
2018-05-31 A 3
2018-01-31 C 5
2018-01-31 A 3
2018-01-31 A 4
2018-01-31 C 2
2018-01-31 B 5
我要完成的工作是将原始数据帧分成多个时间序列,可以将其绘制在一起并一起使用。在这种情况下,如何重塑此数据框,以便可以根据UID分数使用3个不同的时间序列进行游戏?
我似乎停留在以下几点...
2018-08-31 A 5
2018-05-31 A 3.67
2018-01-31 A 3.5
2018-08-31 B 3
2018-05-31 B 1
2018-01-31 B 5
2018-08-31 C 4
2018-05-31 C 2
2018-01-31 C 3.5
...而且我无法确定如何正确地重塑形状。
感谢任何反馈。
答案 0 :(得分:1)
我认为您唯一的问题是您的分组依据。试试:
function addMDA_toA(){
topleftmapbox.loadImage('images/MDA.png', function(error, image) {
if (error) throw error;
topleftmapbox.addImage('meso-image', image);
});
var url = 'json/MDA.json';
window.setInterval(function() {
topleftmapbox.getSource('mesocyclone').setData(url);
}, 2000);
topleftmapbox.addSource('mesocyclone', { type: 'geojson', data: url });
topleftmapbox.addLayer({
"id": "mesocyclone",
"type": "symbol",
"source": "mesocyclone",
"layout": {
"icon-image": "meso-image"
}
});
}
这将产生:
#Recreating your frame
df = pd.DataFrame( [['2018-08-31', 'A', '5'],['2018-08-31','B',3],
['2018-08-31','C',4],
['2018-05-31','A',4],
['2018-05-31','C',2],
['2018-05-31','A',4],
['2018-05-31','B',1],
['2018-05-31','A',3],
['2018-01-31','C',5],
['2018-01-31','A',3],
['2018-01-31','A',4],
['2018-01-31','C',2],
['2018-01-31','B',5]] , columns = ['Date','UID','Score'])
df['Score'] = pd.to_numeric(df['Score'])
#The solution
df.groupby(['UID', 'Date']).mean()
可以按照以下方式绘制:
Score
UID Date
A 2018-01-31 3.500000
2018-05-31 3.666667
2018-08-31 5.000000
B 2018-01-31 5.000000
2018-05-31 1.000000
2018-08-31 3.000000
C 2018-01-31 3.500000
2018-05-31 2.000000
2018-08-31 4.000000