Python 3.x 如何根据行条件保留指定列?
有人知道如何获得大熊猫的下一个跟随结构吗 我有一个熊猫数据框,看起来像这样Python 3.x 如何根据行条件保留指定列?,python-3.x,pandas,if-statement,pythonanywhere,Python 3.x,Pandas,If Statement,Pythonanywhere,有人知道如何获得大熊猫的下一个跟随结构吗 我有一个熊猫数据框,看起来像这样 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 .
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
希望有人能给我一个提示
谢谢
Ale。如果我正确理解了您的问题,我会首先编写一个函数,用于评估您的条件并返回所需的值:
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
到目前为止你试着做什么?有很多方法可以操纵熊猫中的列和条件,你研究过吗?你好,我已经尝试过np。到目前为止,我所做的是df['var7']=np。其中((df['VAR1']='AA')&((df['VAR2']='AG')|(df['VAR2']='AC')),df['VAR3'],0)每个组合(20),因为顺序很重要,有没有可能比这容易得多?非常感谢,它工作得非常好,因为我用np.where做了每个组合。