![](/img/trans.png)
[英]Python: pandas dataframe comparison of rows with the same value in one column
[英]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.