4

私はこのようなデータセットを持っています(最初の行が表示されています):

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回表示されます。

私がする必要があるのは:

  • 列にサンプルと行の検出器が含まれるようにテーブルの形状を変更します
  • 重複する列の名前を変更して、どのレプリケートがそれであるかがわかるようにします

それでうまくいくと思いDataFrame.pivotましたが、データが重複しているため失敗します。最善のアプローチは何でしょうか?複製の名前を変更してから形状を変更しますか、それともより良いオプションがありますか?

編集:私はそれについて考えました、そして私は目的を述べる方が良いと思います。「サンプル」ごとに、「検出器」の平均と標準偏差を保存する必要があります。

4

1 に答える 1

6

あなたが探しているのは、階層的なインデックス付きデータフレーム[リンク]のようです。

このようなものは機能しますか?

#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
于 2012-10-18T16:37:35.603 に答える