微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas:将具有重复行名的数据重新整形为列

我有一个类似这样的数据集(显示的第一行):

Sample  Detector        Cq
P_1   106    23.53152
P_1   106    23.152458
P_1   106    23.685083
P_1   135        24.465698
P_1   135        23.86892
P_1   135        23.723469
P_1   17  22.524242
P_1   17  20.658733
P_1   17  21.146122

“Sample”和“Detector”列都包含重复值(“Cq”是唯一的):准确地说,每个“Detector”每个样本出现3次,因为它是数据中的复制品.

我需要做的是:

>重塑表格,使列包含样本和行Detectors
>重命名重复的列,以便我知道它是哪个复制

我认为DataFrame.pivot可以解决问题,但由于数据重复而失败.什么是最好的方法重命名重复项,然后重塑,还是有更好的选择?

编辑:我考虑过它,我认为最好说明目的.我需要为每个“样本”存储“探测器”的平均值和标准偏差.

解决方法:

看起来你可能正在寻找的是一个分层索引的dataframe [link].

会这样的吗?

#build a sample dataframe
a=['P_1']*9
b=[106,106,106,135,135,135,17,17,17]
c = np.random.randint(1,100,9)
df = pandas.DataFrame(data=zip(a,b,c), columns=['sample','detector','cq'])

#add a repetition number column
df['rep_num']=[1,2,3]*( len(df)/3 )

#Convert to a multi-indexed DF
df_multi = df.set_index(['sample','detector','rep_num'])

#--------------Resulting Dataframe---------------------

                             cq
sample detector rep_num    
P_1    106      1        97
                2        83
                3        81
       135      1        46
                2        92
                3        89
       17       1        58
                2        26
                3        75

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐