我正在对数据框进行一些操作:
df
Node Interface Speed carrier 1-May 9-May 2-Jun 21-Jun
Server1 internet1 10 ATT 20 30 50 90
Server1 wan3.0 20 Comcast NaN NaN NaN 100
Server1 wan3.0 50 Comcast 30 40 40 NaN
Server2 wan2 100 Sprint 90 70 NaN NaN
Server2 wan2 20 Sprint NaN NaN 88 70
Server2 Internet2 40 Verizon 10 60 90 70
我需要按节点和接口合并数据框组中的行,用另一行替换 nan 值,并为接口速度选择最大值。
预期的数据框应该是这样的:
df1
Node Interface Speed carrier 1-May 9-May 2-Jun 21-Jun
Server1 internet1 10 ATT 20 30 50 90
Server1 wan3.0 50 Comcast 30 40 40 100
Server2 wan2 100 Sprint 90 70 88 70
Server2 Internet2 40 Verizon 10 60 90 70
我尝试过这个:
df2=df.groupby(['Node','Interface','carrier']),agg({'Speep': 'max'}).reset_index()
df3=df.drop('Speed', axis=1)
df4=df3.ffill().drop_duplicates()
不太管用。有没有一种简单的方法来合并行,用其他行值替换 nan 值,并为 Speed 单元格值选择最大速度?
代码
米:
出去:
如果您不想对其进行硬编码
cols
,请使用以下代码。如果您还想将运营商包含在组中,请使用以下代码