如何使用for循环遍历pandas dataframe列以基于给定的列表对值进行计数

用户名

我想使用for循环遍历pandas数据框的列,以基于给定的列表对值进行计数。

My_list =[ 'apple', 'orange', 'grapes' ]

我可以使用value_count()以下给出的函数来计算频率

df['Fruits']. value_count() 

但我想使用for循环进行计算以遍历数据帧以获取给定列表的计数和平均值。

My_list =[ 'apple', 'orange', 'grapes' ] 

Df:   
    Fruits  value
    apple      10
    apple      20 
    orange      2
    grapes      5 
    grapes     10 
    grapes      3

我的输出应该是这样的。

Fruits    count    average
apple      2         15 
orange     1          2 
grapes     3          6
耶斯列尔

使用:


My_list = ['apple', 'orange', 'grapes'] 
df1 = (df.query("Fruits in @My_list")
         .groupby('Fruits', sort=False)['value']
         .agg(['size','mean'])
         .rename(columns={'mean':'average', 'size':'count'})
         .reset_index())

df1 = (df[df['Fruits'].isin(My_list)]
        .groupby('Fruits', sort=False)['value']
        .agg(['size','mean'])
        .rename(columns={'mean':'average', 'size':'count'})
        .reset_index())

print (df1)
   Fruits  count  average
0   apple      2       15
1  orange      1        2
2  grapes      3        6

如果要使用循环,它应该更慢:

L = []
for x in My_list:
    s = df.loc[df['Fruits'] == x, 'value']
    #print (s)
    L.append({'Fruits': x, 'average':s.mean(), 'count':len(s)})

df = pd.DataFrame(L, columns=['Fruits','count','average'])
print (df)
   Fruits  count  average
0   apple      2     15.0
1  orange      1      2.0
2  grapes      3      6.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

给定输入值列表,如何计算 Python 中的 Pandas DataFrame 列的计数?

给定该列中已排序的值列表,如何在该列上对 Pandas DataFrame 进行排序?

如何使用“Do While”循环遍历列表

如何基于预定规则对列的值进行计数,并使用该计数的数字创建新列?

使用列表理解循环遍历 Pandas 数据框

使用给定的输入列表对DataFrame列进行排序

如何使用for循环从Pandas DataFrame列进行追加?

如何使用for循环遍历Python中的嵌套列表

使用基于范围的for循环遍历指针列表

循环遍历 Pandas 数据框以使用 for 循环替换现有值

使用 Pandas 遍历列

如何使用for循环遍历字典列表,选择键并将值附加到新列表

如何从列表中的值替换url中的值并使用FOR循环遍历它们

嵌套数组如何使用smarty正确地进行遍历(循环内循环)

如何使用自制函数遍历 Pandas DataFrame 或 Numpy Arrays?

如何使用此lambda函数循环遍历DataFrame中的行,计算值并将该值放入新列中

DataFrame 列中的嵌套列表:如何对单个值进行计算?

循环遍历函数内的 Pandas 列

循环遍历 Pandas 中的分组列

如何在不使用for循环的情况下基于来自另一个Dataframe的值对pandas DataFrame进行切片?

如何使用熊猫基于多个列条件对行进行计数?

如何基于特定值进行聚合并在给定对象列表的情况下创建嵌套地图?

如何通过列中的给定值加速循环对 DataFrame 进行子集化并在 Python 中应用公式

如何基于DataFrame中的多个条件对事件进行计数

在 Python 中,如何遍历列表、附加到 Pandas df、基于列表进行 api 查找等

列中有列表对象时获取pandas Dataframe中唯一值的计数

如何基于在dataframe列中找到的列表值创建多个标志列?

如何在循环中遍历名称列表

如何让我的循环遍历我的列表?