python - 过滤 Multilevel pandas groupby
问题描述
如何过滤熊猫 Groupby 多级?
例子:
import pandas as pd
df = pd.DataFrame( {"Country" : ["Brazil", "Brazil", "Brazil", "Italy", "Italy", "Brazil"],
"City" : ["Sao Paulo", "Sao Paulo", "Rio de Janeiro", "Roma", "Roma", "Sao Paulo"],
"Vehicule" : ["Bike", "Car", "Car", "Car", "Bike", "Bike"],
"Value" : [1, 2, 3, 4, 5,6]})
group = df.groupby(by=["Country", "City", "Vehicule"]).sum().loc[:,"Value"]
print(group)
如何仅按车辆“自行车”过滤级别,并显示自行车和汽车的百分比。
解决方案
一个简单的方法是先过滤,然后分组:
df[df.Vehicule=="Bike"].groupby(["Country", "City"]).sum()
或者:
df.groupby(["Country", "City", "Vehicule"]).sum().unstack().Value.Bike
后者为没有的城市生成 NaN:
Country City
Brazil Rio de Janeiro NaN
Sao Paulo 7.0
Italy Roma 5.0
或作为分数:
x = df.groupby(["Country", "City", "Vehicule"]).sum().unstack().Value
x.Bike / x.sum(1)
给你:
Country City
Brazil Rio de Janeiro NaN
Sao Paulo 0.777778
Italy Roma 0.555556
推荐阅读
- c# - 如何在 C# Web 应用程序中将超过 100 万行从 SQL Server 表导出到 CSV?
- java - Java中基于整数的多类型字符串ArrayList排序
- python - 如何根据删除熊猫数据框中最大的第三列的两列来删除重复项?
- arrays - 使用主键按列拆分 SAS 数据集
- javascript - 在渲染函数之后写变量和在构造函数中写“变量的this.name”有什么区别?
- python - 将叶子与背景分离
- javascript - 当我尝试在元素“pro1”中显示总和时如何解决这个“未定义”
- tibco - 在 TIBCO BW 6.5 的 Send-HTTP-Request 中在哪里添加“标头”?
- android - 寻找带圆角的 Android 对话框小部件
- excel - 从excel中的行中删除重复项