簡體   English   中英

如何從另一個數據框行創建列並根據兩個數據框的值填充它們

[英]how to create columns from another dataframe rows and populate them based on values from both dataframes

說我有兩個dfs:df1:

new_col 屬性 y1
汽油 0.3
柴油機 0.4
死板的 HGV 0.25
北極 HGV 0.35

另一個數據框(df2)具有來自 df1 的共同屬性列:

ID HGV
1 10 1000
2 1000 10
3 100 10000

我正在嘗試將 df1 中的 new_col 的名稱添加為 df2 中的新列,並通過將 y1/y2 乘以 df2 中 y1 和 y2 的相應屬性列來填充它。

這就是我想要得到的: 在此處輸入圖像描述

通過new_col,attribute和多個不帶iddf2中的所有列創建MultiIndex Series ,通過DataFrame.droplevel刪除 MultiIndex 的第二級,加入df2並最后使用DataFrame.convert_dtypes作為整數列:

s = df1.set_index(['new_col','attribute'])['y1']
df = df2.join(df2.drop('id',1).mul(s, level=1).droplevel(1, axis=1)).convert_dtypes()
print (df)
   id   car    hgv  petrol  diesel   rigid   artic
0   1    10   1000       3       4   250.0   350.0
1   2  1000     10     300     400     2.5     3.5
2   3   100  10000      30      40  2500.0  3500.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM