首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在熊猫数据框架中使用群表进行列列表的处理?

如何在熊猫数据框架中使用群表进行列列表的处理?
EN

Stack Overflow用户
提问于 2019-08-16 10:25:58
回答 2查看 279关注 0票数 1

我想从熊猫数据框架中取一列值的平均值。我的实际数据框架是,

代码语言:javascript
代码运行次数:0
运行
复制
df:
mac           gw_mac        ibeaconMajor  ibeaconMinor  rssi
ac233f264920  ac233fc015f6  1             1             [-32, -45]
ac233f26492b  ac233fc015f6  0             0             [-65, -52]
ac233f264933  ac233fc015f6  1             2             [-69, -73]

所需的结果是,

代码语言:javascript
代码运行次数:0
运行
复制
df:
mac           gw_mac        ibeaconMajor  ibeaconMinor  rssi
ac233f264920  ac233fc015f6  1             1             -38.5
ac233f26492b  ac233fc015f6  0             0             -58.5
ac233f264933  ac233fc015f6  1             2             -71

我尝试了以下功能,但无法获得所需的响应。

代码语言:javascript
代码运行次数:0
运行
复制
df.assign(rssi=pd.to_numeric(df['rssi'], errors='coerce')) \
              .groupby(['mac','gw_mac','ibeaconMajor','ibeaconMinor']) 
               ['rssi'].mean()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-16 10:44:42

试试apply

代码语言:javascript
代码运行次数:0
运行
复制
df['rssi'] = df.rssi.apply(np.mean)

完整的例子:

代码语言:javascript
代码运行次数:0
运行
复制
data = [["ac233f264920",  "ac233fc015f6",  1, 1, [-32, -45]],
        ["ac233f26492b",  "ac233fc015f6",  0, 0, [-65, -52]],
        ["ac233f264933",  "ac233fc015f6",  1, 2, [-69, -73]]]


df = pd.DataFrame(data, columns=["mac", "gw_mac", "ibeaconMajor",  "ibeaconMinor",  "rssi"])

df['rssi'] = df.rssi.apply(np.mean)
print(df)
#             mac        gw_mac  ibeaconMajor  ibeaconMinor  rssi
# 0  ac233f264920  ac233fc015f6             1             1 -38.5
# 1  ac233f26492b  ac233fc015f6             0             0 -58.5
# 2  ac233f264933  ac233fc015f6             1             2 -71.0
票数 1
EN

Stack Overflow用户

发布于 2019-08-16 11:01:30

代码语言:javascript
代码运行次数:0
运行
复制
df = pd.DataFrame([['ac233f264920','ac233fc015f6',  1,  1, [-32, -45]],
                   ['ac233f26492b','ac233fc015f6',  0,  0, [-65, -52]],
                   ['ac233f264933','ac233fc015f6',  1,  2, [-69, -73]],
                   ], columns=['mac', 'gw_mac','ibeaconMajor','ibeaconMinor', 'rssi'])

df
            mac        gw_mac  ibeaconMajor  ibeaconMinor        rssi
0  ac233f264920  ac233fc015f6             1             1  [-32, -45]
1  ac233f26492b  ac233fc015f6             0             0  [-65, -52]
2  ac233f264933  ac233fc015f6             1             2  [-69, -73]

计算平均值

代码语言:javascript
代码运行次数:0
运行
复制
means = [np.mean(x) for x in df['rssi']]

替换柱

代码语言:javascript
代码运行次数:0
运行
复制
df['rssi'] = means

df
            mac        gw_mac  ibeaconMajor  ibeaconMinor  rssi
0  ac233f264920  ac233fc015f6             1             1 -38.5
1  ac233f26492b  ac233fc015f6             0             0 -58.5
2  ac233f264933  ac233fc015f6             1             2 -71.0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57522993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档