[英]How to change value in two DataFrame columns in python
我有一個6列的CSV文件。 我將其加載到內存中並通過某些方法進行處理。 我的結果是一個帶有4個列的數據框如下所示:
name number Allele Allele
aaa 111 A B
aab 112 A A
aac 113 A B
但是現在我有了另一種格式的csv(沒有Illumina),我需要將其更改為上面的格式。
我有一個結果:
name number Allele1 Allele2
aaa 111 A C
aab 112 A G
aac 113 G G
我知道如何更改格式,例如AG == AB,GG == AA,CC == AA(太)等。但這比for循環更好的方法嗎?
可以說:
for line in range(len(dataframe)):
if(dataframe.Allele1[line] == A and dataframe.Allele2[line] == G):
dataframe.Allele1[line] = A
dataframe.Allele2[line] = B
elif:
etc.
我覺得這不是完成此任務的最佳方法。 在熊貓或Python中,Meaby是更好的方法嗎?
我需要將那格式更改為Illumina格式,因為數據庫處理了Illumina。
並且:在照度下AA = AA,CC,GG; AB = AC,AG,AT,CT,GT; BB = CG,TT等
So if row[1] in col Allele1 is A and in Allele2 is T, edited row will be: Allele1 = A, Allele2 = B.
預期結果是:
name number Allele1 Allele2
aaa 111 A B
aab 112 A B
aac 113 A A
結果,我必須有一個4列。
您是否嘗試過使用pandas.DataFrame.replace? 例如:
df['Allele1'].replace(['GC', 'CC'], 'AA')
通過該行,您可以在“ Allele1”列中替換您要查找的AA的GC和CC值。 您可以將該邏輯應用於所需的所有替換,如果您希望在整個數據框中執行該替換,只是不指定該列,請執行以下操作:
df.replace(['GC', 'CC'], 'AA')
您可以嘗試這樣做(將AG轉換為AB):
df.loc[df['Allele1'] == 'A' & df['Allele1'] == 'G', 'Allele1'] = 'A'
df.loc[df['Allele1'] == 'A' & df['Allele1'] == 'G', 'Allele2'] = 'B'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.