Python Django,Pandas:ForeignKey,他的属性和计算
Python Django, Pandas: ForeignKey, his attributes and calculation
美好的一天,
是否有任何解决方案可以在我的 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
是否可以获取(通过外键)连接数据的其他属性并在数据框内进行计算(在本例中:价格 x 数量)?
可能的结果:
id | object | amount | price | calc
1 | name_a | 12 | 2 | 24
2 | name_b | 7 | 4 | 28
3 | name_c | 19 | 8 | 152
感谢您的帮助!
我想这可能对你有帮助
假设你有两个数据帧
即 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 中的 .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 column
中
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
中找到更多信息
希望这能解决您的问题
美好的一天,
是否有任何解决方案可以在我的 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
是否可以获取(通过外键)连接数据的其他属性并在数据框内进行计算(在本例中:价格 x 数量)?
可能的结果:
id | object | amount | price | calc
1 | name_a | 12 | 2 | 24
2 | name_b | 7 | 4 | 28
3 | name_c | 19 | 8 | 152
感谢您的帮助!
我想这可能对你有帮助
假设你有两个数据帧 即 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 中的 .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 column
中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
中找到更多信息
希望这能解决您的问题