有人知道如何在Pandas中获得下一个遵循的结构吗?
我有一个看起来像这样的Pandas数据框
ID VAR1 VAR2 VAR3 VAR4 VAR5
1 TT TG .01 .09 .90
2 CC TC .20 .34 .56
3 GG AG .10 .20 .70
4 TC TC .17 .48 .35
5 AG AG .12 .46 .32
6 GG TG .15 .20 .65
7 TT TC .06 .24 .70
8 TT CT .11 .21 .68
9 GT GT .05 .10 .85
基于此信息,我希望输出数据框看起来如下:
ID VAR1 VAR2 VAR6
1 TT TG .01
2 CC TC .56
3 GG AG .70
4 TC TC .48
5 AG AG .46
6 GG TG .65
7 TT TC .06
8 TT CT .68
9 GT GT .10
希望有人能给我提示!
谢谢,
啤酒
如果我正确理解了您的问题,我将首先编写一个函数,该函数将评估您的条件并返回所需的值:
def classify(item):
if item["VAR1"] == item["VAR2"][0]*2:
return item["VAR3"]
if item["VAR1"] == item["VAR2"]:
return item["VAR4"]
if item["VAR1"] == item["VAR2"][1]*2:
return item["VAR5"]
return 0 # what if none is true?
然后将其应用于您的数据框,并指定新列:
df["VAR6"] = df.apply(classify, axis=1)
# You can also drop the middle columns if needed
df.drop(["VAR3", "VAR4", "VAR5"], axis=1, inplace=True)
输出:
VAR1 VAR2 VAR6
ID
1 TT TG 0.01
2 CC TC 0.56
3 GG AG 0.70
4 TC TC 0.48
5 AG AG 0.46
6 GG TG 0.65
7 TT TC 0.06
8 TT CT 0.68
9 GT GT 0.10