在熊猫

分组转换分组堆积列到多列,我组织了我的数据框使用GROUPBY功能看起来是这样的:在熊猫

Compound Sample Concentration x y 

Benzene A 15 Ax Ay

B 20 Bx By

C 17 Cx Cy

Toluene A 23 Ax Ay

B 40 Bx By

Xylene A 70 Ax Ay

B 62 Bx By

C 55 Cx Cy

D 32 Dx Dy

如何拆散列到同一高度的多个列与分组作为列名?我想实现这样的事情:

Sample Benzene Toluene Xylene x y 

A 15 23 70 Ax Ay

B 20 40 62 Bx By

C 17 0 55 Cx Cy

D 0 0 32 Dx Dy

编辑 我失去了指标后,我用了GROUPBY功能,用我的数据是这样的:

Compound  Sample  Concentration   x y 

1 Benzene A 15 Ax Ay

5 Benzene B 20 Bx By

6 Benzene C 17 Cx Cy

0 Toluene A 23 Ax Ay

4 Toluene B 40 Bx By

2 Xylene A 70 Ax Ay

3 Xylene B 62 Bx By

7 Xylene C 55 Cx Cy

8 Xylene D 32 Dx Dy

我复方排序,以便重新安排所有索引最初按样本排序

回答:

根据您的发布,您不清楚索引中的哪些列。如果他们都不是(你可以用df.reset_index()力),那么你就可以做到以下几点:这不你的输出相匹配

df.set_index(['Compound', 'Sample', 'x', 'y'], inplace = True) 

df = df['Concentration']

df = df.unstack(level = 0)

df.reset_index(inplace = True)

的唯一途径是,X和Y列现在位于数据的左侧。由于这些列看起来像样本字母很容易构建,因此在转换后添加它们可能更容易。也就是说,如果你的团队通过给你与索引化合物和样品,和浓度的数据框作为唯一的列,你可能只是做:

df = df['Concentration'].unstack(level = 0) 

,然后添加你的X和Y列。

编辑:从您的原始数据,你也可以做到这一点,它做了你与GROUPBY做了什么,一步到位会重塑:

df2 = pd.pivot_table(df, index = ['Sample', 'x', 'y'], columns = 'Compound', values = 'Concentration') 

以上是 在熊猫 的全部内容, 来源链接: utcz.com/qa/257586.html

回到顶部