给定一个 pandas 数据框,有没有办法获取列具有特定值的行的索引?
考虑以下玩具示例:
CSV(另存为 test1.csv)
id,val1,val2
1,20,A
1,19,A
1,23,B
2,10,B
2,10,A
2,14,A
我目前拥有的是:
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]
有没有一个选项/功能可以给我类似下面的东西? (我希望能够对大值列表执行此操作,快速!)
print(df['id'].someFn([1,2]))
期望的输出:
{1:[0,1,2], 2:[3,4,5]}
最佳答案
尝试groupby
:
{k: list(d.index) for k, d in df.groupby('id')}
输出:
{1: [0, 1, 2], 2: [3, 4, 5]}
关于Python- Pandas : get row indices for a particular value in a column,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65669445/