【发布时间】:2019-12-08 16:53:27
【问题描述】:
我有一个带有双索引(i 和 j)的 DataFrame df,我将其视为(方形和稀疏)矩阵。
在某些时候,我需要执行以下操作:
- 比较单元格元素
df(i,j)与其转置df(j,i) - 查找列
u更大的列 - 从矩阵中删除较小的一个
如何在熊猫中做到这一点?
我有一个幼稚的.iterrows() 解决方案,它在矩阵尺寸超过数百个时卡住了:
for _,s in df.iterrows():
if (s.j,s.i) in df.index:
if df.loc[s.j,s.i]['u']>s['u']:
df = sg.drop(i,axis=0)
这是df 中的数据(我不知道如何将数据从 jupyter 粘贴到 SO,但让我们试试这个):
i j origin_i destination_i ttrav_i treq_i origin_j destination_j ttrav_j treq_j i j u u_i u_j t t_oo_i_j delay t_od_j_i t_dd_i_j
281 230 4.627953e+07 46378182.0 455.0 502.0 3.514366e+08 27471867.0 341.0 719.0 281 230 41.7 21.45 20.25 619 234 17.0 292 93
52 456 3.841813e+09 46374243.0 975.0 2586.0 4.962112e+09 46342032.0 808.0 2739.0 52 456 200.4 186.90 13.50 1148 183 30.0 774 191
163 456 4.652382e+07 46378182.0 1133.0 2178.0 4.962112e+09 46342032.0 808.0 2739.0 163 456 61.3 45.15 16.15 1545 558 -3.0 799 188
435 347 4.653102e+07 297095278.0 994.0 1333.0 4.648040e+07 46342898.0 894.0 1708.0 435 347 78.5 28.85 49.65 1289 302 -73.0 836 151
323 383 2.104392e+09 46375508.0 734.0 3070.0 4.641315e+07 46345887.0 603.0 3391.0 323 383 183.5 98.05 85.45 969 338 17.0 441 190
【问题讨论】:
-
您能提供一些示例输入和预期输出吗?
sg是什么?
标签: python pandas numpy matrix