获取数据框中存在的给定行的索引
Get indeces of given rows present in a dataframe
我有一个如下所示的数据框:
data = [[1, 10,100], [1.5, 15, 25], [7, 14, 70], [33,44,55]]
df = pd.DataFrame(data, columns = ['A', 'B','C'])
并且有这样的视觉表达
A B C
1 10 100
1.5 15 25
7 14 70
33 44 55
我还有其他数据,它是数据框中行的随机子集,所以像这样
set_of_rows = [[1,10,100], [33,44,55]]
我想获取指示 set_of_rows
中每一行在 df
中的位置的索引。所以我需要一个函数来做这样的事情:
indeces = func(subset=set_of_rows, dataframe=df)
In [1]: print(indeces)
Out[1]: [0, 3]
什么功能可以做到这一点?发送
尝试以下操作:
[i for i in df.index if df.loc[i].to_list() in set_of_rows]
#[0, 3]
如果你想要它作为一个函数:
def func(set_of_rows, df):
return [i for i in df.index if df.loc[i].to_list() in set_of_rows]
你可以看看这个帖子;
Python Pandas: Get index of rows which column matches certain value
据我所知,您的任务没有内置的 Panda 函数,因此迭代是唯一的解决方法。如果您担心处理错误,您可以在循环中添加条件来解决这个问题。
for i in df.index:
lst = df.loc[i].to_list()
if lst in set_of_rows:
return i
else:
return None
我有一个如下所示的数据框:
data = [[1, 10,100], [1.5, 15, 25], [7, 14, 70], [33,44,55]]
df = pd.DataFrame(data, columns = ['A', 'B','C'])
并且有这样的视觉表达
A B C
1 10 100
1.5 15 25
7 14 70
33 44 55
我还有其他数据,它是数据框中行的随机子集,所以像这样
set_of_rows = [[1,10,100], [33,44,55]]
我想获取指示 set_of_rows
中每一行在 df
中的位置的索引。所以我需要一个函数来做这样的事情:
indeces = func(subset=set_of_rows, dataframe=df)
In [1]: print(indeces)
Out[1]: [0, 3]
什么功能可以做到这一点?发送
尝试以下操作:
[i for i in df.index if df.loc[i].to_list() in set_of_rows]
#[0, 3]
如果你想要它作为一个函数:
def func(set_of_rows, df):
return [i for i in df.index if df.loc[i].to_list() in set_of_rows]
你可以看看这个帖子; Python Pandas: Get index of rows which column matches certain value
据我所知,您的任务没有内置的 Panda 函数,因此迭代是唯一的解决方法。如果您担心处理错误,您可以在循环中添加条件来解决这个问题。
for i in df.index:
lst = df.loc[i].to_list()
if lst in set_of_rows:
return i
else:
return None