簡體   English   中英

使用 Python 中的條件對多個 dataframe 列進行分組和比較

[英]Group and Compare multiple dataframe columns with conditions in Python

我正在嘗試打印出每個地區人口最多的州。

代碼示例

# all unique regions
region_unique = data['Region'].unique()

# highest population
max_pop = data['population'].max()

如何鏈接上述代碼行並引入'States'列以實現我的結果?

數據集

在此處輸入圖像描述

考慮到你沒有提到任何圖書館......

您可以首先創建一個輔助dict ,將每個區域映射到一個狀態數組。 每個 state 是一個元組:( (state, pop) (名稱和人口計數):

regions = {}
for state, pop, region in zip(data['States'], data['population'], data['Region']):
    res.setdefault(region, []).append((state, pop))

然后對於每個區域,您可以提取出最多人居住的 state:

for region, states in regions.items():
    print(region, max(states, key=lambda _, pop: pop))

對於每個地區下人口少於100的州,您可以執行以下操作:

for region, states in regions.items():
    print(region, list(filter(lambda state: state[1] > 100, states)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM