嘗試從 biorep 中的所有其他事物中減去參考組 cq,使用 pandas 的分析組或我猜是一般的 python。如果可能,緊湊或雄辯。這在 R 中非常簡單,但在這里無法弄清楚
biorep well sample assay cq
1 C1 spA MSGN1 10
1 C2 spA MSGN1 15
1 C3 spA MSGN1 20
1 C4 ref MSGN1 5
2 C1 spB MSGN1 12
2 C2 spB MSGN1 15
2 C3 spB MSGN1 20
2 C4 ref MSGN1 4
我想按 biorep 和分析分組。對于這些組中的每一個,從組中的其他事物中減去代表。所以我應該得到這樣的結果。l.
biorep well sample assay cq delta
1 C1 spA MSGN1 10 5
1 C2 spA MSGN1 15 10
1 C3 spA MSGN1 20 15
1 C4 ref MSGN1 5. 0
2 C1 spB MSGN1 12 8
2 C2 spB MSGN1 15 11
2 C3 spB MSGN1 20 16
2 C4 ref MSGN1 4 0
我知道這應該很容易,但即使有來自 stackoverflow 的建議,我也遇到了麻煩。我試過使用這個建議,這是我發現的最重要的建議,從 pandas 的行中減去組特定值,但無濟于事。我得到了這些NaN。所有其他建議似乎都不相關,或者在谷歌上搜索這個問題時遇到了麻煩。有人在這里有想法嗎?
def func(grp):
ref = grp.loc[grp['sample'] == 'No Spacer Control','cq']
grp['delta'] = grp[grp['sample'] == 'No Spacer Control']['cq'] - ref
return grp
summry.groupby(['biorep','assay']).apply(func)
biorep sample assay cq delta
1 No Spacer Control HPRT 25.237209 0.0
1 spMSGN1_1 HPRT 25.632444 NaN
1 spMSGN1_10 HPRT 25.298286 NaN
1 spMSGN1_11 HPRT 25.130593 NaN
1 spMSGN1_2 PRT 25.371607 NaN
uj5u.com熱心網友回復:
您可以從 ref 值創建資料框并將其與原始資料框合并:
df_ref = df.loc[df['sample'] == 'ref', ['biorep', 'assay', 'cq']]
df = df.merge(df_ref, how='left', on=['biorep', 'assay'], suffixes=('', '_ref'))
df['delta'] = df['cq'] - df['cq_ref']
uj5u.com熱心網友回復:
給定記錄的順序,您可以cq從組中減去最后一個,只要您包含plate在分組中。
df['delta'] = df.groupby(['biorep','assay', 'plate'])['cq'].apply(lambda x: x.sub(x.iloc[-1]))
輸出
plate well biorep sample assay cq delta
0 1 C1 1 spA MSGN1 10 5
1 1 C2 1 spA MSGN1 15 10
2 1 C3 1 spA MSGN1 20 15
3 1 C4 1 ref MSGN1 5 0
4 2 C1 1 spB MSGN1 12 8
5 2 C2 1 spB MSGN1 15 11
6 2 C3 1 spB MSGN1 20 16
7 2 C4 1 ref MSGN1 4 0
uj5u.com熱心網友回復:
編輯后更新:
嘗試:
compute_delta = lambda x: x.loc[x['sample'].ne('ref'), 'cq'] \
.sub(x.loc[x['sample'].eq('ref'), 'cq'].squeeze())
df['delta'] = df.groupby(['biorep', 'assay'], as_index=False) \
.apply(compute_delta).droplevel(0).reindex(df.index, fill_value=0)
print(df)
# Output
biorep well sample assay cq delta
0 1 C1 spA MSGN1 10 5
1 1 C2 spA MSGN1 15 10
2 1 C3 spA MSGN1 20 15
3 1 C4 ref MSGN1 5 0
4 2 C1 spB MSGN1 12 8
5 2 C2 spB MSGN1 15 11
6 2 C3 spB MSGN1 20 16
7 2 C4 ref MSGN1 4 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/422943.html
標籤:
