我有一个数据帧列表,每个数据帧都有一个network_device
列,如下所示(此列中的值是唯一的,即数据帧内没有重复,但列表中的值将在数据帧之间重叠):
In [63]: df1
Out[63]:
network_device
0 ar01.hel2
1 ar01.arn2
2 ar01.ber1
3 ar01.bio1
4 ar01.del1
5 ar01.den2
6 ar01.dfw1
7 ar01.ewr2
8 ar01.fml2
9 ar01.fra2
10 ar01.hkg3
11 ar01.jnb1
12 ar01.kul2
13 ar01.lax1
14 ar01.lhr3
15 ar01.mia1
16 ar01.mrs1
17 ar01.nrt1
18 ar01.ord3
19 ar01.sea1
20 ar01.sin1
21 ar01.sjc1
22 ar01.sof1
23 ar01.vab1
24 ar01.yyz1
25 ar02.atl1
26 ar02.atl4
27 ar02.bom1
28 ar02.cgk1
29 ar02.cph2
.. ...
489 xfwr01.cco1
490 xfwr01.cln1
491 xfwr01.cln2
492 xfwr01.eag1
493 xfwr01.frc1
494 xfwr01.frc3
495 xfwr01.ftw1
496 xfwr01.ftw2
497 xfwr01.lla1
498 xfwr01.lla2
499 xfwr01.nao1
500 xfwr01.ncg1
501 xfwr01.nha1
502 xfwr01.odn1
503 xfwr01.odn2
504 xfwr01.pnb1
505 xfwr01.prn2
506 xfwr01.prn3
507 xfwr01.rva1
508 xfwr01.snc1
509 xfwr01.vll1
510 xfwr01.xdc2
511 xfwr02.nao1
512 xfwr02.pnb1
513 xfwr02.rva1
514 xfwr02.snc1
515 xfwr02.vll1
516 xfwr02.xdc2
517 xfwr03.snc1
518 csw92b.atn5
[519 rows x 1 columns]
现在,我想把所有这些数据帧连接到network_device
列中,按照每个数据帧中它们的索引之和对结果进行升序排序,然后得到第一个结果。为了更清楚地说明这一点,例如我的数据帧列表被称为dataframes
。那么,我想要的可以写成:
joined_df = pd.merge(*dataframes, on="network_device")
device_name = sorted(
joined_df.network_device,
key=lambda d: sum(df[df.network_device == d].index[0] for df in dataframes),
)[0]
我想知道的是,是否有比使用pythonsorted
函数更有效的方法来进行排序/获取第一个值?或者,在合并过程中,我是否可以指定某种方式对联接的数据帧进行排序?谢谢
目前没有回答
相关问题 更多 >
编程相关推荐