首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取数据帧中给定行的索引

获取数据帧中给定行的索引
EN

Stack Overflow用户
提问于 2021-08-03 11:18:03
回答 2查看 32关注 0票数 0

我有一个数据帧,看起来像这样:

代码语言:javascript
运行
复制
data = [[1, 10,100], [1.5, 15, 25], [7, 14, 70], [33,44,55]]
df = pd.DataFrame(data, columns = ['A', 'B','C'])

,并具有如下的视觉表达

代码语言:javascript
运行
复制
A    B    C
1    10   100
1.5  15   25
7    14   70
33   44   55

我还有其他数据,也就是来自dataframe的随机行的子集,所以类似这样

代码语言:javascript
运行
复制
set_of_rows = [[1,10,100], [33,44,55]]

我想要获取指示dfset_of_rows中每一行的位置的指示符。所以我需要一个函数来做这样的事情:

代码语言:javascript
运行
复制
indeces = func(subset=set_of_rows, dataframe=df)
In [1]: print(indeces)
Out[1]: [0, 3]

什么函数可以做到这一点?Tnx

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-03 11:25:22

尝试以下操作:

代码语言:javascript
运行
复制
[i for i in df.index if df.loc[i].to_list() in set_of_rows]
#[0, 3]

如果你想把它作为一个函数:

代码语言:javascript
运行
复制
def func(set_of_rows, df):
    return [i for i in df.index if df.loc[i].to_list() in set_of_rows]
票数 1
EN

Stack Overflow用户

发布于 2021-08-03 12:13:46

您可以查看此线程;Python Pandas: Get index of rows which column matches certain value

据我所知,你的任务没有内在的Panda函数,所以迭代是唯一的方法。如果你关心如何处理这些错误,你可以在你的循环中添加一些条件来解决这个问题。

代码语言:javascript
运行
复制
for i in df.index:
    lst = df.loc[i].to_list()
    if lst in set_of_rows:
       return i
    else:
       return None
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68635094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档