ema*_*max 7 python find dataframe pandas
我有一个如下所示的数据框
df =
a ID1 ID2 Proximity
0 0 900000498 NaN 0.000000
1 1 900000498 900004585 3.900000
2 2 900000498 900005562 3.900000
3 3 900000498 900008613 0.000000
4 4 900000498 900012333 0.000000
5 5 900000498 900019524 3.900000
6 6 900000498 900019877 0.000000
7 7 900000498 900020141 3.900000
8 8 900000498 900022133 3.900000
9 9 900000498 900022919 0.000000
Run Code Online (Sandbox Code Playgroud)
我想为给定的夫妇找到ID1-ID2
相应的Proximity
值。例如,给定[900000498, 900022133]
我想要的输入作为输出3.900000
EdC*_*ica 10
如果这是一个常见操作,那么我loc
会将索引设置为这些列,然后您可以使用并传递 col 值的元组来执行索引查找:
In [60]:
df1 = df.set_index(['ID1','ID2'])
In [61]:
%timeit df1.loc[(900000498,900022133), 'Proximity']
%timeit df.loc[(df['ID1']==900000498)&(df['ID2']==900022133), 'Proximity']
1000 loops, best of 3: 565 µs per loop
100 loops, best of 3: 1.69 ms per loop
Run Code Online (Sandbox Code Playgroud)
您可以看到,一旦 cols 形成索引,则查找比过滤操作快 3 倍。
输出几乎相同:
In [63]:
print(df1.loc[(900000498,900022133), 'Proximity'])
print(df.loc[(df['ID1']==900000498)&(df['ID2']==900022133), 'Proximity'])
3.9
8 3.9
Name: Proximity, dtype: float64
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8817 次 |
最近记录: |