【发布时间】:2022-01-25 06:54:20
【问题描述】:
我有以下 Pandas DataFrame,我正在尝试根据动物的类别对动物进行分组。我知道我可以使用 groupby 来获得更快的结果。但是,我在想是否有办法通过遍历行来复制 groupby 函数。
df = pd.DataFrame([('bird', 'Falconiformes', 389.0),
('bird', 'Psittaciformes', 24.0),
('mammal', 'Carnivora', 80.2),
('mammal', 'Primates', np.nan),
('mammal', 'Carnivora', 58)],
index=['falcon', 'parrot', 'lion', 'monkey', 'leopard'],
columns=('class', 'order', 'max_speed'))
我一直在尝试使用以下代码,但它不起作用,我找不到其他方法。
birds = []
mammal = []
for i, columnclass in df.iterrows():
if i == 'bird':
birds.append(i)
else:
mammal.append(i)
print(birds)
print(mammal)
输出应该与此代码类似。
group = df.groupby(['class']).sum()
输出[1]:
class max_speed
bird 413.0
mammal 138.2
【问题讨论】:
-
展示您将如何使用 groupby 来提供我们可以比较的参考实现
-
最后,我想根据类计算max_speed的总和。所以通过使用 groupby 我会做这样的事情 'group = df.groupby(['class']).sum()' 注意:抱歉我不能上传输出的照片
-
您不应该将文字作为图片发布。始终对控制台输出和代码使用代码格式。