Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django,Pandas:ForeignKey,他的属性和计算_Python_Django_Dataframe_Calculation - Fatal编程技术网

Python Django,Pandas: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

你好

是否有任何解决方案可以访问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.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”连接背后的数据。例如,第二个数据帧中我的“对象”模型中的价格。正如你所看到的,我是从我的“金额”模型中引用它的。谢谢,我希望我的解释能对你有所帮助。。。