Python Pandas:选择索引范围 - python

datas = [['RAC1','CD0287',1.52], ['RAC1','CD0695',2.08], ['RAC1','ADN103-1',2.01], ['RAC3','CD0258',1.91], ['RAC3','ADN103-3',1.66], ['RAC8','CD0558',1.32], ['RAC8','ADN103-8',2.89]]
labels = ['Plate', 'Sample', 'LogRatio']
df = pd.DataFrame(data = datas, columns=labels, index=[8, 3, 5, 4, 12, 44, 2])

   Plate    Sample  LogRatio
8   RAC1    CD0287      1.52
3   RAC1    CD0695      2.08
5   RAC1  ADN103-1      2.01
4   RAC3    CD0258      1.91
12  RAC3  ADN103-3      1.66
44  RAC8    CD0558      1.32
2   RAC8  ADN103-8      2.89

我想使用索引在“CD0695”样本之后找到位于 n 行的样本的logratio值。

n = 2
indexCD0695 = df[df['Sample']=="CD0695"].index.tolist()
print(indexCD0695)
> [3] 
logratio_value = df.iloc[indexCD0695[0]+n]['LogRatio']
> 1.32 #NOT THE RESULT I WOULD LIKE 

我不知道如何拥有一个索引而不是一个列表,所以我只选择列表indexCD0695[0]的第一个元素,这不是我最大的问题。
我的真正问题是,我在索引位置3 + 2处获取了值,在该位置,我希望索引以CD0695的位置开头:(我可以仅用df.loc来获取它),并在此起始索引之后添加第二行:

4   RAC3    CD0258      1.91

因此对数比值为1.91

我想我必须混合df.loc[indexCD0695]df.iloc[n],但我不知道如何。

参考方案

使用 get_loc 获取通过索引标签的特定行的序数位置,然后可以使用iloc获取此行之后的第n行:

In [261]:
indexCD0695 = df.index.get_loc(df[df['Sample']=="CD0695"].index[0])
indexCD0695

Out[261]:
1

In [262]:
n=2
logratio_value = df.iloc[indexCD0695+n]['LogRatio']
logratio_value

Out[262]:
1.9099999999999999

pandas DataFrame:根据另一列中的布尔值计算总和 - python

我对Python相当陌生,我尝试在pandas中模拟以下逻辑我目前正在循环抛出行,并希望对前几行的AMOUNT列中的值求和,但只求和最后一次看到的“ TRUE”值。实际数据似乎效率低下(我的数据框大约有500万行)?想知道用Python处理这种逻辑的有效方法是什么?逻辑:逻辑是,如果FLAG为TRUE,我想对前几行的AMOUNT列中的值求和,但只求和最后一次…

pandas.DataFrame.replace更改列的dtype - python

因此,我试图用np.nan替换数据框中的None值,并注意到在此过程中,即使数据框中的float列的数据类型不包含任何丢失的数据,它们也都更改为object。举个例子:import pandas as pd import numpy as np data = pd.DataFrame({'A':np.nan,'B':1…

Pandas Dataframe:在越来越多的列上循环并计算均值和标准差 - python

基本上,我有一个包含20个属性和一个值的表。我想找到std = 0-(即粒度级别完美允许1:1)所需的最少数量的属性。我想建立一个循环如果使用列名进行硬编码,则看起来像这样:for iter in range(1,21): dfcalc = df.groupby("LINE_NUM")["RATIO"].agg([np…

如何从'pandas.core.frame.DataFrame'中消除第一列 - python

我有以以下格式输出的代码。我应该如何删除第一列并可以将第二行的元素存储在列表中?输出类型为'pandas.core.frame.DataFrame'格式 speed lat lng 1 19.130506 12.616756 7.460664 2 63.595894 52.616838 7.460691 3 40.740044 72.616913 7.460…

Python Pandas:按分组分组,平均? - python

我有一个像这样的数据框:cluster org time 1 a 8 1 a 6 2 h 34 1 c 23 2 d 74 3 w 6 我想计算每个集群每个组织的平均时间。预期结果:cluster mean(time) 1 15 ((8+6)/2+23)/2 2 54 (74+34)/2 3 6 我不知道如何在熊猫中做到这一点,有人可以帮忙吗? 参考方案 如…