亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

分別計算 python 數據框中不同列中的值和字符串?

分別計算 python 數據框中不同列中的值和字符串?

FFIVE 2023-10-26 15:37:42
這是我的第一篇文章(我已經在谷歌上搜索了一整天,但找不到任何東西),請溫柔一點。所以我正在使用一個包含多個列、一些浮點數、一些布爾值的數據框。    col_1       col_2       col_3      col_4       col_5      col_60   38.109375   37.515625   True       False       (64, 69)   F1   27.265625   28.484375   True       False       (74, 79)   M2   26.843750   27.015625   False      True        (64, 69)   F我想重新訂購/制作一個新的 df 其中:是 groupby col_6 AND col_5 (檢查)具有 col_1 和 col_2 的平均值(檢查)在 col_3 和 col_4 中計算“True”(不起作用)到目前為止我的方法:new_df = df.groupby(['col_6', 'col_5']).agg({'col_5' : ['count'], 'col_1' : ['mean'], 'col_2' : ['mean']})表的圖像。但我不知道如何計算也與 col_5 和 col_6 相關的“trues”?希望這是有道理的,有人可以提供幫助。
查看完整描述

2 回答

?
呼喚遠方

TA貢獻1856條經驗 獲得超11個贊

您可以在 agg 函數中使用 lambda 計算 True 項目


new_df = (

    df

    .assign(

         col_3 = lambda x: x['col_3'].astype(int),

         col_4 = lambda x: x['col_4'].astype(int)

    )

    .groupby(['col_6', 'col_5'])

    .agg({'col_5' : ['count'], 

          'col_1' : ['mean'], 

          'col_2' : ['mean'],

          'col_3' : lambda x: len([1 for item in x if item ==True]),

          'col_4' : lambda x: len([1 for item in x if item ==True])}

     )

)


查看完整回答
反對 回復 2023-10-26
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您可以像對整數求和一樣對布爾值求和:


[ins] In [15]: df["y"]

Out[15]: 

0     True

1     True

2    False

Name: y, dtype: bool


[ins] In [16]: df["y"].sum()

Out[16]: 2

所以你可以在你的字典中使用例如"col_3": ["sum"]。


查看完整回答
反對 回復 2023-10-26
  • 2 回答
  • 0 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號