我有以下数据帧。您可以看到每个岛的id都有一个或多个位置id。这个数据帧是真实数据帧的一个非常小的样本(13000000行和4列)
df = {'location_id': [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8],
'timestamp':['2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52',
'2020-05-26 22:00:52','2020-05-26 22:01:52','2020-05-26 22:02:52'],
'temperature_value': [20,21,22,23,24,25,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],
'humidity_value':[60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83],
'island_id':[10,10,10,20,20,20,20,20,20,30,30,30,30,30,30,30,30,30,40,40,40,40,40,40]}
dataframe = pd.DataFrame(df)
我在这里试图实现的是绘制至少有2个位置id的所有岛屿id的温度值。例如,岛屿id=30包含位置id=[4,5,6]。所以在这种情况下,我应该在同一个图中,在时间戳的x轴上,绘制位置6、7和8的所有温度值。因此,在我的情况下,我预计会得到20或30个子地块。每个图将显示同一个岛上位置的温度值,作为时间戳的函数。因此,对于一个岛id有3个位置,这3个位置的温度值应显示在图中(3条曲线)。(注:各地块应相互下方,如子地块)
有没有一种用Python实现的方法?如果有人能给我一个解决方案,我将不胜感激:)
.groupby
和filter
'location\u id',其计数等于或大于三个,进入新的datframe密谋
设计^{} 方法的理想情况。基本上,您可以按
island_id
分组,然后迭代单个组并使用以下条件绘图:这将创建三个绘图,每个
location_id
一个相关问题 更多 >
编程相关推荐