簡體   English   中英

重塑熊貓數據框:從一列創建多列

[英]Reshape pandas dataframe: Create multiple columns from one column

我想重塑以下數據框

在此處輸入圖像描述

進入

在此處輸入圖像描述

有人可以幫我嗎?

您是否嘗試過df.pivot()pd.pivot() C列中的值將成為列標題。 之后,展平多索引列,並重命名它們。

import pandas as pd

#df = df.pivot(['A', 'B'], columns='C').reset_index()    #this also works
df = pd.pivot(data=df, index=['A', 'B'], columns='C').reset_index()
df.columns = ['A', 'B', 'X', 'Y']
print(df)

輸出

   A   B  X  Y
0  a  aa  1  5
1  b  bb  6  2
2  c  cc  3  7
3  d  dd  8  4

有時,可能存在具有相同索引的重復記錄,那么您必須改用pd.pivot_table() 參數aggfunc=np.mean將取這些重復記錄的平均值,並變成float類型,正如您從輸出中看到的那樣。

import pandas as pd
import numpy as np

df = pd.pivot_table(data=df, index=['A', 'B'], columns='C', aggfunc=np.mean).reset_index()
df.columns = ['A', 'B', 'X', 'Y']
print(df)

輸出

   A   B    X    Y
0  a  aa  1.0  5.0
1  b  bb  6.0  2.0
2  c  cc  3.0  7.0
3  d  dd  8.0  4.0

你可以試試

out = df.pivot(index=['A', 'B'], columns='C', values='D').reset_index()
print(out)

C  A   B  X  Y
0  a  aa  1  5
1  b  bb  6  2
2  c  cc  3  7
3  d  dd  8  4

暫無
暫無

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

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