如何在Python中使用iterrows来计算列值的平均数

2024-10-01 11:38:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含100+列的数据帧,其中col10之后的所有列都是float类型。我想做的是找出循环中某些列范围的平均值。这是我到目前为止试过的

for index,row in df.iterrows():
    a = row.iloc[col30:col35].mean(axis=0)

不幸的是,这将返回意外的值,并且我无法获得每个值的col30、col31、col32、col33、col34、col35的平均值行。可以吗有人请帮忙。你知道吗


Tags: 数据in类型dfforindexfloatmean
1条回答
网友
1楼 · 发布于 2024-10-01 11:38:49

尝试:

df.iloc[:, 30:35].mean(axis=1)

您可能需要将30:35调整为29:35(您可以删除.mean并四处玩,以了解.iloc的工作方式)。一般来说,在熊猫身上你要尽量避免循环。.iloc方法允许您根据索引和列的位置索引来选择它们。然后可以使用轴为1的.mean()对第一个轴(行)求和。你知道吗

你真的应该放一个小例子,我复制的例子,请看下面的评论中提到的解决方案的工作。你知道吗

import pandas as pd
df = pd.DataFrame({i:val for i,val in enumerate(range(100))}, index=list(range(100)))
for i,row in df.iterrows():
     a = row.iloc[29:25].mean() # a should be 31.5 for each row
     print(a)

相关问题 更多 >