你已经到达DF了。我在这里展示了它的有趣的专栏。它在行和列中都更大:DF.shape = (185, 34)
。用不同DF的信息填充熊猫DF细胞
正如你所看到的,outSpeed
字段为空的滞后般的端口。
我已经计算出不同的DF与outSpeed为LAG的...
dfLags = df[df['lag_id'] > 0 ]
dfLags = dfLags.groupby([SITE_IP,'lag_id'])['outSpeed'].sum().reset_index()
dfLags['lag_id'] = 'Lag ' + dfLags['lag_id'].astype(str).str[:-2]
dfLags.rename(columns = {'lag_id':PORT_NAME} , inplace = True)
...产生以下...
Site ID Port outSpeed
0 10.2.20.5 Lag 112 10000000000
1 10.2.20.5 Lag 122 10000000000
2 10.2.21.3 Lag 1 2000000000
3 10.2.21.3 Lag 3 20000000000
4 10.2.21.3 Lag 10 20000000000
5 10.2.22.123 Lag 2 3000000000
6 10.2.22.123 Lag 3 2000000000
7 10.2.22.123 Lag 10 6000000000
8 10.2.22.21 Lag 1 3000000000
9 10.2.22.21 Lag 3 2000000000
10 10.2.22.21 Lag 10 6000000000
11 10.2.46.52 Lag 3 20000000000
12 10.2.46.52 Lag 10 20000000000
dfLags.shape = (13, 3)
所以,例如,要完成原始DF,我将不得不填写Site ID = 10.2.46.52
与Port = lag 10
的outSpeed = 20000000000
。
我还没有找到一个这样做的简单方法。我的意思是:如何填写原始DF的outSpeed
字段有条件的两个字段(site ID,port
),请记住,当然,原来的DF是更大的方式?
编辑:我读过这[后],这是我面临的同样的问题,但目前还无法实现。
在那里,他们建议做:
values = (dfTemp[[SITE_IP,PORT_NAME]] == dfLags[[SITE_IP,PORT_NAME]]).axis(all=1)
...但在运行的时候,我得到:
ValueError: Can only compare identically-labeled DataFrame objects
我觉得我想趁自己越来越近。有任何想法吗?
[文章] - Pandas (Python) - Update column of a dataframe from another one with conditions
你介意张贴一些实际的数据,或者是太许多? –
其实是一个相当大的文件。但是发现一篇文章看起来像是一个解决方案,尽管还没有成功。我编辑了这个问题。 –
'merge()'有什么问题? –