1
私は同じグループに属するいくつかの行を持つ1つのデータフレームを持っています。私は今、古いデータの各列の中央値を使って、新しいデータフレームにグループごとに1行を追加します。したがって、私は以下をコード化しました:DFのすべての行に行き、グループ名がすでに処理されていれば検索します。私は新しいDFに中央値を書きたくない場合は `Python:あるフレームから別のフレームへパンダの値を書き込むことができません
for i in df2.index:
prot=str(df2.loc[i, 'Proteins'])
if prot in c:
pass
else:
c.append(prot)
temp=df2[df2['Proteins'].apply(lambda x: x == prot)]
df3.loc[i, 'Gene Names']=temp.loc[i, 'Gene Names']
df3.loc[i, 'Proteins']=temp.loc[i, 'Proteins']
df3.loc[i, 'Median 0']=temp['H/L 0'].median()
df3.loc[i, 'Median 1']=temp['H/L 1'].median()
df3.loc[i, 'Median 2']=temp['H/L 2'].median()
df3.loc[i, 'Median 3']=temp['H/L 3'].median()
df3.loc[i, 'Median 4']=temp['H/L 4'].median()
df3.loc[i, 'Median 5']=temp['H/L 5'].median()
df3.loc[i, 'Median 6']=temp['H/L 6'].median()
df3.loc[i, 'Median 7']=temp['H/L 7'].median()
df3.loc[i, 'Median 8']=temp['H/L 8'].median()
df3.loc[i, 'Median 9']=temp['H/L 9'].median() `
データフレームは次のようになります。
今A B C D XX 2 2 2 Y 4 4 4 YX 2 2 2 XX 2 3 2
それが新しいデータフレームに崩壊する必要があります。
A B C D XX 2 2.5 2 Y 4 4 4 YX 2 2 2
しかし、もし私がこれを行うと、それは私のエラーを提起します:
KeyError: 'the label [2311] is not in the [index]'
私はそれを割り当ててインデックスを作成すると思ったdf3.loc[i, 'column']=XXX
ありがとうございました。
感謝。数値以外の値を持つ列がさらにある場合、これは機能しますか?ときどき私は、列を指定せず、数値でない列がある場合、.median()が機能しないという問題があります。 –
はい数値以外の値は無視されます。データをグループ化する列を指定する必要があります。 – Dark
どうもありがとうございます。それは今うまく動作します:) –