熊猫数据框加入并按原始数据框中的索引总和排序

时间:2019-12-09 23:19:38

标签: python python-3.x pandas

我有一个熊猫数据帧列表,每个熊猫数据帧都有一个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]

我想知道的是,是否存在一些更有效的方法来进行排序/使用熊猫数据帧中内置的某些方法而不是使用python sorted函数来获取第一个值?还是如果有某种方法可以指定在合并过程中以这种方式对连接的数据框进行排序?谢谢。

0 个答案:

没有答案