基于不同其他列的新 Pandas 列,取决于另一列的值

婴儿

对不起,标题可能比问题本身更复杂;)

我有以下熊猫数据框

    grh  anc     anc1     anc2    anc3     anc4     anc5    anc6     anc7  
1     2    5  0.10000  0.12000  0.1800  0.14000  0.15000  0.1900  0.20000   
2     3    7  0.03299  0.05081  0.0355  0.02884  0.03054  0.0332  0.03115   
3     4    3  0.00000  0.00000  0.0000  0.00000  0.00000  0.0000  0.00000   
4     5    4  0.00000  0.00000  0.0000  0.00000  0.00000  0.0000  0.00000   
5     6    1  0.10000  0.10000  0.1000  0.10000  0.10000  0.1000  0.10000   


       anc8     anc9    anc10  
1   0.10000  0.21000  0.24000  
2   0.02177  0.04903  0.04399  
3   0.00000  0.00000  0.00000  
4   0.00000  0.00000  0.00000  
5   0.10000  0.10000  0.10000  

我想添加带有 forloop lap1, lap2, ....取决于变量 anc 的值的新列。例如,在第一行, anc=5 所以 lap1 应该等于 anc5 (0.1500)的值,lap2 等于 anc6 (0.1900) ...在第二行 lap1=anc7 (0.03115), lap2=anc8 ( 0.02177) ,...

所以,输出应该看起来像

grh anc anc1    anc2    anc3    anc4    anc5    anc6    anc7    anc8    anc9    anc10   lap1    lap2    lap3
2   5   0.10000 0.12000 0.18000 0.14000 0.15000 0.19000 0.20000 0.1000  0.21000 0.24000 0.15000 0.19000 0.20000
3   7   0.03299 0.05081 0.0355  0.02884 0.03054 0.0332  0.03115 0.02177 0.04903 0.04399 0.03115 0.02177 0.04903
4   3   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
5   4   0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000
6   1   0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000 0.10000

我尝试了一些非常基本的东西,但似乎不起作用

for i in range(1,4):
    j=df['anc']+i
    df['lap'+str(i)]= df['anc'+str(j)]

如果您有任何想法,我将不胜感激。谢谢

格泽戈尔茨斯基宾斯基

有点“蛮力”的方法,但我看不出你怎么能这样做:

df[[f"lap{i}" for i in range(1,4)]]= \
    df.apply(lambda x: \
        pd.Series({f"lap{j}": x[f"anc{int(j+x['anc']-1)}"] for j in range(1,4)}) \
    , axis=1)

(假设根据您的样本,您的最大值lap为 3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何添加一个新的pandas列,其值以一列为条件,但值取决于其他列?

不同的JOIN值取决于另一列的值

Pandas列,其中每个值取决于另一个df查询

pandas DataFrame中的新列取决于其他列的值

如何对一列进行排序取决于另一列的值:jquery tablesorter

使用列表的值创建一列并取决于另一列

基于pandas中一列等于另一列的不同行返回值

熊猫为另一列分配不同的值,取决于另一列中的值

取决于 Pandas Dataframe 列的值数组

mysql查询排序根据不同的列取决于另一列的值

Python:pandas DataFrame基于其他列的新列

基于另一列的 Pandas 列值通过或失败

熊猫DataFrame。汇总列中的值取决于另一列中的值

报告编号列的值,具体取决于R中另一列中指定的数字

大熊猫分配列值取决于df中的另一列

将具有取决于另一列的值的列添加到数据框

从列中生成最大值,这取决于另一列的范围

使用新值折叠ID,具体取决于另一列

Pandas:取决于另一个文本列的新文本列

将一列垂直合并到另一列中,并在Pandas中填充其他列的值

Python Pandas分组并基于另一列排除值

Python Pandas-基于另一列中先前值的新列

Postgres SQL GROUP BY取决于另一列中的值

Pandas 基于另一列 python 获取一列中的唯一值

SQL-列值,取决于另一列值是否出现在第三列中

Pandas:重新排序基于另一列创建的组中一列中的值

pandas - 根据另一列更改列中的值

根据另一列在pandas列中分配值

SQL更新列,取决于同一列中的其他值