在python中将行转换为列
我有Fila\u ID和MIHF\u ID以及总计。我需要将MIHF_ID转换为基于total的列。每个Filaa_ID都有多个MIHF_ID。我尝试使用Pivot,但这无助于进一步进行集群。我需要总列是目前以及在python中将行转换为列,python,pandas,dataframe,Python,Pandas,Dataframe,我有Fila\u ID和MIHF\u ID以及总计。我需要将MIHF_ID转换为基于total的列。每个Filaa_ID都有多个MIHF_ID。我尝试使用Pivot,但这无助于进一步进行集群。我需要总列是目前以及 FILA_ID MIHF_ID Total 0 1514 34338 249525.220 1 1484 34338 240921.760 2 1514 30927 222260.790
FILA_ID MIHF_ID Total
0 1514 34338 249525.220
1 1484 34338 240921.760
2 1514 30927 222260.790
3 1484 30929 214958.440
4 10481 34338 209155.460
... ... ... ...
289783 10070 973713 0.000
289784 422 973713 0.000
289785 312 31563 0.000
289786 556 973713 0.000
289787 29 973713 0.000
我已经尝试使用group by和unstacking,但无法选择转换的列
df_ = df.groupby(['FILA_ID','MIHF_ID'])['Total'].sum().unstack(fill_value=0)
我希望将Fila_ID和MIHF_ID以及total作为列。如果我正确理解了您的问题,像这样吗
import pandas as pd
df = pd.DataFrame({"FILA_ID": [1514, 1484, 1514, 1484, 10481],
"MIHF_ID": [34338, 34338, 30927, 30929, 34338],
"Total": [249525.220, 240921.760, 222260.790, 214958.440, 209155.460]})
df_new = pd.DataFrame(df.groupby(['FILA_ID','MIHF_ID'])['Total'].sum().unstack(fill_value=0).stack())
df_new.reset_index(inplace=True)
df_new.rename(columns = {0:'Total'}, inplace=True)
df_new
FILA_ID MIHF_ID Total
0 1484 30927 0.00
1 1484 30929 214958.44
2 1484 34338 240921.76
3 1514 30927 222260.79
4 1514 30929 0.00
5 1514 34338 249525.22
6 10481 30927 0.00
7 10481 30929 0.00
8 10481 34338 209155.46
如果我下面的答案有帮助,请随意接受它作为一个成功的答案。