Given a pandas dataframe, is there a way to get the indices of rows where a column has particular values?
Consider the following toy example:
CSV (save as 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:
{1:[0,1,2], 2:[3,4,5]}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…