问题描述
美好的一天,
有什么解决方案可以访问我的models.py内部的ForeignKey属性,也可以在数据框内部进行计算?
<%= form.submit "Create",class: 'btn btn-primary' %>
比方说现有对象看起来像这样:
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
是否可以获取(通过外键)连接的数据的其他属性,还可以在数据框内进行计算(在这种情况下,价格为数量x)?
可能的结果:
id | object | amount
1 | name_a | 12
2 | name_b | 7
3 | name_c | 19
感谢您的所有帮助!
解决方法
我认为这可能对您有帮助
假设您有两个数据框 即df1和df2
df1 = pd.DataFrame([["item1",10],["item2",5],["item3",6]],columns=["item","price"])
df2 = pd.DataFrame([["item1",1],3]],"amount"])
由以下数据组成
df1
price
item
item1 10
item2 5
item3 6
df2
amount
item
item1 1
item2 3
您可以通过在熊猫中使用.join
来按索引将两个数据帧连接起来,如下所示。请注意,item
是索引
merged_df = df1.join(df2)
merged_df
看起来
price amount
item
item1 10 1.0
item2 5 3.0
item3 6 NaN
现在按照以下方法进行计算。它将在 price 列和 amount 列之间进行乘法,并将其存储在 calc 列
中merged_df = merged_df["price"] * merged_df["amount"]
然后merged_df
将
price amount calc
item
item1 10 1.0 10.0
item2 5 3.0 15.0
item3 6 NaN NaN
中找到更多信息。
我希望这能解决您的问题