簡體   English   中英

如何將此 pandas dataframe 從高表示轉換為寬表示,刪除一列

[英]How to convert this pandas dataframe from a tall to a wide representation, dropping a column

我有以下 dataframe:

df = pd.DataFrame({'Variable':    {0: 'Abs', 1: 'rho0', 2: 'cp', 3: 'K0'},
                   'Value':       {0: 0.585, 1: 8220.000, 2: 435.000, 3: 11.400},
                   'Description': {0: 'foo', 1: 'foo', 2: 'foo', 3: 'foo'}})

我想像這樣重塑它:

df2 = pd.DataFrame({'Abs':  {0: 0.585},
                    'rho0': {0: 8220.000},
                    'cp':   {0: 435.000},
                    'K0':   {0: 11.400}})

我該怎么做?

df3 = df.pivot_table(columns='Variable', values='Value')
print(df3)
Variable    Abs    K0     cp    rho0
Value     0.585  11.4  435.0  8220.0

非常接近我正在尋找的內容,但如果可能的話,我寧願不使用第一列Variable

您可以嘗試重命名軸()

df3 = df.pivot_table(values='Value', columns='Variable').rename_axis(None, axis=1) 

另外,如果您想重置索引

df3 = df.pivot_table( columns='Variable').rename_axis(None, axis=1).reset_index().drop('index',axis=1)
df3.to_dict()
# Output 
           {'Abs': {0: 0.585}, 
           'K0': {0: 11.4}, 
           'cp': {0: 435.0}, 
           'rho0': {0: 8220.0}}

暫無
暫無

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

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