Python Django,Pandas:ForeignKey,他的属性和计算
你好 是否有任何解决方案可以访问my models.py中ForeignKey的属性并在数据帧中进行计算Python Django,Pandas:ForeignKey,他的属性和计算,python,django,dataframe,calculation,Python,Django,Dataframe,Calculation,你好 是否有任何解决方案可以访问my models.py中ForeignKey的属性并在数据帧中进行计算 class Object(models.Model): name = models.Charfield(max_length=100, null=False, blank=False) price = models.Integerfield(default=0) class Amounts(models.Model): object = models.Foreign
class Object(models.Model):
name = models.Charfield(max_length=100, null=False, blank=False)
price = models.Integerfield(default=0)
class Amounts(models.Model):
object = models.ForeignKey(Object, on_delete=models.CASCADE)
amount = models.Integerfield(default=0)
假设现有对象看起来像这样:
id | name | price
1 | name_a | 2
2 | name_b | 4
3 | name_c | 8
id | object | amount
1 | name_a | 12
2 | name_b | 7
3 | name_c | 19
现在我得到了一个数据帧,看起来像这样:
id | name | price
1 | name_a | 2
2 | name_b | 4
3 | name_c | 8
id | object | amount
1 | name_a | 12
2 | name_b | 7
3 | name_c | 19
是否可以获取(通过foreignkey)连接数据的其他属性,并在数据帧内进行计算(在本例中:价格x金额)
可能的结果:
id | object | amount | price | calc
1 | name_a | 12 | 2 | 24
2 | name_b | 7 | 4 | 28
3 | name_c | 19 | 8 | 152
谢谢你的帮助 我想这可能对你有帮助 假设您有两个数据帧 i、 e df1和df2
df1 = pd.DataFrame([["item1",10],["item2",5], ["item3",6]], columns=["item","price"])
df2 = pd.DataFrame([["item1",1],["item2",3]], columns=["item","amount"])
其中包括以下数据
df1
price
item
item1 10
item2 5
item3 6
df2
amount
item
item1 1
item2 3
您可以使用按索引连接两个数据帧。请按如下所示在pandas中连接。请注意,项
是索引
merged_df = df1.join(df2)
merged_df
看起来像
price amount
item
item1 10 1.0
item2 5 3.0
item3 6 NaN
现在应用你的计算如下。它将在列price和amount之间进行乘法,并将其存储在calc列中
然后将合并df
price amount calc
item
item1 10 1.0 10.0
item2 5 3.0 15.0
item3 6 NaN NaN
您可以从中找到更多信息
我希望这将解决您的问题,那么您是想在数据帧中计算它还是在查询集本身中计算它?我的意思是,你们准备这两个数据帧来合并表并进行计算吗?如果可能的话,我想在数据帧内进行计算!因此,基本上您希望合并并计算来自两个数据帧的值。对吗?如果这是我问题的解决方案:是的!最初我想知道,我是否可以访问“ForeignKey”连接背后的数据。例如,第二个数据帧中我的“对象”模型中的价格。正如你所看到的,我是从我的“金额”模型中引用它的。谢谢,我希望我的解释能对你有所帮助。。。