简体   繁体   English

Python - Pandas:获取列中特定值的行索引

[英]Python - Pandas: get row indices for a particular value in a column

Given a pandas dataframe, is there a way to get the indices of rows where a column has particular values?给定 pandas dataframe,有没有办法获取列具有特定值的行的索引?

Consider the following toy example:考虑以下玩具示例:

CSV ( save as test1.csv ) CSV另存为test1.csv

id,val1,val2
1,20,A
1,19,A
1,23,B
2,10,B
2,10,A
2,14,A

What I currently have is this:我目前拥有的是这样的:

import pandas as pd

df = pd.read_csv('test1.csv')
print(df)

print(df[df['id']==1].index.to_list())
print(df[df['id']==2].index.to_list())
   id  val1 val2
0   1    20    A
1   1    19    A
2   1    23    B
3   2    10    B
4   2    10    A
5   2    14    A
[0, 1, 2]
[3, 4, 5]

Is there an option/functionality that can give me something like the following?是否有一个选项/功能可以给我类似以下的东西? (I want to be able to do this for large value lists, fast !) (我希望能够快速为大型值列表执行此操作!)

print(df['id'].someFn([1,2]))

Desired output:所需的 output:

{1:[0,1,2], 2:[3,4,5]}

Try groupby :尝试groupby

{k: list(d.index) for k, d in df.groupby('id')}

Output: Output:

{1: [0, 1, 2], 2: [3, 4, 5]}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用Python / Pandas逐行获取列内容的值 - Get value of column content by row with Python/Pandas 熊猫:如何通过特定列值的值获取行计数,以及如何将计数添加为另一列。 - Pandas: How to get a row count by the value of a particular column value, and add the count as another column. 获取上一行的值并计算新列pandas python - get previous row's value and calculate new column pandas python Pandas 在 Python 中的应用 function 中按列名获取行值? - Pandas get the row value by column name in an apply function in Python? 如何使用 Python Pandas 从 1 行中的特定列获取值? - How to get value from specific column in 1 row using Python Pandas? 获取 Python Pandas 中每一行中特定值的列名 - Get Column Name for specific value in each row in Python Pandas 使用偏移索引获取熊猫数据框中列的第一个值 - Get first value of column in dataframe in pandas with offset indices 根据熊猫列中的值从DataFrame中选择特定的行 - Select particular row from a DataFrame based on value in a column in pandas 如何使用python apply/lambda/shift函数根据2列的值获取该特定列的前一行值? - How to use python apply/lambda/shift function to get the previous row value of that particular column based on the value of 2 columns? 熊猫当列中出现某种特定类型的值时,删除一行 - Pandas Remove a row when a particular kind of value appears in a column
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM