所以我有3个类,一个组类,一个传感器类和一个值类。 这些类大致定义如下:
class SensorGroup(models.Model):
name = models.CharField(max_length=100)
logging_on = models.BooleanField(default=False)
class Sensor(models.Model):
device_id = models.CharField(max_length=25, primary_key=True)
name = models.CharField(max_length=25, blank=False)
last_updated = models.DateTimeField(auto_now=True)
sensor_group = models.ForeignKey(SensorGroup, related_name='sensors')
class Value(models.Model):
sensor = models.ForeignKey(Sensor, related_name='values')
time = models.DateTimeField(auto_now_add=True)
value = models.FloatField(blank=False)
每隔20秒为每个传感器添加值。
我想使用pandas.DataFrame.from_records()
将它转换成这样的表,例如对于组1:
| sensor_1 | sensor_2 | sensor_3 | timestamp |
|----------+----------+----------+--------------|
| 1.5 | 2.0 | 1.0 | 12:33 2/4/17 |
|----------+----------+----------+--------------|
| 2.0 | 1.5 | 3.3 | 12:34 2/4/17 |
....
到目前为止我试过的:
qs = Sensors.all().values('name', 'values__value')
df = pd.DataFrame.from_records(list(qs))
print(df)
收益率
name values__value
0 sensor_1 0.0
1 sensor_1 1.0
2 sensor_1 2.0
3 sensor_2 0.0
4 sensor_2 1.0
5 sensor_2 2.0
有没有办法进行此查询并将其转换为数据集?你知道吗
看看pandaspivot_table,如果在queryset中也提取时间戳,那么可以执行以下操作:
table = pd.pivot_table(df, values='values__value', index=['timestamp'], columns=['name']).reset_index()
生成表格
相关问题 更多 >
编程相关推荐