第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

通過消除重復(fù)來編寫 Pandas groupby 代碼的有效方法

通過消除重復(fù)來編寫 Pandas groupby 代碼的有效方法

鳳凰求蠱 2024-01-27 16:12:19
我有一個如下所示的數(shù)據(jù)框。df = pd.DataFrame({    'Country':['A','A','A','A','A','A','B','B','B'],    'City':['C 1','C 1','C 1','B 2','B 2','B 2','C 1','C 1','C 1'],    'Date':['7/1/2020','7/2/2020','7/3/2020','7/1/2020','7/2/2020','7/3/2020','7/1/2020','7/2/2020','7/3/2020'],    'Value':[46,90,23,84,89,98,31,84,41]})我需要創(chuàng)建 2 個平均值首先,以Country和City為標(biāo)準(zhǔn)其次,僅對Country為了實現(xiàn)這一點,我們可以輕松編寫以下代碼df.groupby(['Country','City']).agg('mean')+---------+------+-------+| Country | City | Value |+---------+------+-------+|       A |  B 2 | 90.33 ||         +------+-------+|         |  C 1 |    53 |+---------+------+-------+|       B |  C 1 |    52 |+---------+------+-------+df.groupby(['Country']).agg('mean').    +---------+-------+    | Country |       |    +---------+-------+    |       A | 71.67 |    +---------+-------+    |       B |    52 |    +---------+-------+上述 2 個代碼中唯一的變化是groupbycriteria City。除此之外一切都一樣。所以有明顯的重復(fù)/重復(fù)的代碼。(特別是當(dāng)涉及到復(fù)雜的場景時)。現(xiàn)在我的問題是,有什么方法可以讓我們編寫一個代碼來同時合并這兩種場景。DRY——不要重復(fù)自己。我的想法如下。Choice = 'City'   `<<--Here I type either City or None or something based on the requirement. Eg: If None, the Below code will ignore that criteria.`df.groupby(['Country',Choice]).agg('mean')這可能嗎?或者有效地編寫上述代碼而不重復(fù)的最佳方法是什么?
查看完整描述

1 回答

?
冉冉說

TA貢獻(xiàn)1877條經(jīng)驗 獲得超1個贊

我不確定你想要完成什么但是..為什么不只使用 if 呢?


columns=['Country']

if Choice:

    columns.append(Choice)

df.groupby(columns).agg('mean')


查看完整回答
反對 回復(fù) 2024-01-27
  • 1 回答
  • 0 關(guān)注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號