簡體   English   中英

Python Pandas:一個列中的行值 dataframe 成為其他列中的列 Z6A8064B5DF479453550055

[英]Python Pandas: rows value of column in one dataframe became column in other dataframe

我有兩個數據框,如下所示:

東風:

     ID      Season Time_of_day KVA   Agriculture   Commercial  Industrial  Residential Agri_cap    
    162     Spring  Day         409.71  8.0          221.0         11.0        365.0     126.0  
    162     Spring  Evening     409.05  8.0          221.0         11.0        365.0     126.0  
    162     Autmun  Morning     388.95  8.0          221.0         11.0        365.0     126.0  
    162     Autmun  Night       242.32  8.0          221.0         11.0        365.0     126.0  
    162     Summer  Day         290.52  8.0          221.0         11.0        365.0     126.0  

df1:

    ID  Classification  Time_of_day Spring_prop Summer_prop Winter_prop Autmun_prop
    162 Agriculture     Day           0.238636      0.125000    0.261364    126.0
    162 Agriculture     Evening       0.285714      0.428571    0.285714    126.0
    162 Agriculture     Morning       0.312500      0.000000    0.125000    126.0
    162 Agriculture     Night         0.718750      0.000000    0.000000    126.0
    162 Commercial      Day           0.123732      0.069122    0.101264    5864.0
    162 Commercial      Evening       0.276018      0.413058    0.233355    5864.0
    162 Commercial      Morning       0.058824      0.000000    0.169683    5864.0
    162 Commercial      Night         0.407240      0.000000    0.000000    5864.0
    162 Council         Day           0.375000      0.250000    0.375000    15.0
    162 Council         Evening       0.285714      0.428571    0.285714    15.0
    162 Council         Night         1.000000      0.000000    0.000000    15.0
    162 Industrial      Day           0.095960      0.090909    0.085859    74.0
    162 Industrial      Evening       0.103896      0.142857    0.103896    74.0
    162 Industrial      Morning       0.045455      0.000000    0.045455    74.0
    162 Industrial      Night         0.409091      0.000000    0.000000    74.0
    162 Residential     Day           0.147068      0.096110    0.143342    5593.0
    162 Residential     Evening       0.280626      0.417221    0.265753    5593.0
    162 Residential     Morning       0.069863      0.000000    0.238356    5593.0
    162 Residential     Night         0.376125      0.000000    0.000000    5593.0

我想以這樣的方式合並這兩個數據框,即 df1 中名為“Classification、Summer_prop、Winter_prop、Spring_prop 和 Autmun_prop”的列的行值以某種方式組合(如所需的輸出所示)並成為最終的列數據框。 這是我想要的所需df:

所需 output

final_df:

 ID  Time_of_day KVA   Agriculture   Commercial  Industrial  Residential Agri_cap Agriculture_Spring_prop   Agriculture_Summer_prop    Agriculture_Winter_prop   Agriculture_Autmun_prop  Commerical_Spring_prop   Commerical_Summer_prop     Commerical_Winter_prop     Commerical_Autmun_prop Industrial_Spring_prop    Industrial_Summer_prop    Industrial_Winter_prop    Industrial_Autmun_prop Residential_Spring_prop    Residential_Summer_prop   Residential_Winter_prop  Residential_Autmun_prop

162  Day       409.71   8.0          221.0        11.0        365.0      126.0   0.238          0.125 0.261 126.0 0.123 0.0691  0.101 5864.0  0.095  0.090  0.0858  74.0  0.1470  0.096  0.1433 5593.0
162  Evening   409.05   8.0          221.0        11.0        365.0      126.0   0.285          0.428  0.2857  126.0   0.276  0.413  0.2333 5864.0  0.1038  0.142  0.103 74.0  0.280 0.417  0.2657 5593.0

我嘗試使用一個 df1 的轉置合並和連接查詢,但無法獲得所需的 output? 任何指導和幫助將不勝感激?

我們需要為 df1 做pivot然后merge

s=df1.set_index(['ID','Classification','Time_of_day']).unstack('Classification')
s.columns=s.columns.map('_'.join)
df=df.merge(s.reset_index(),on='ID')

暫無
暫無

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

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