Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Pandas从count()函数的dataframe aggregate max()返回字符串值_Python 3.x_Pandas_Dataframe_Count_Max - Fatal编程技术网

Python 3.x Pandas从count()函数的dataframe aggregate max()返回字符串值

Python 3.x Pandas从count()函数的dataframe aggregate max()返回字符串值,python-3.x,pandas,dataframe,count,max,Python 3.x,Pandas,Dataframe,Count,Max,我正在学习熊猫,并努力学习更简单的东西 最终,我希望我的代码只返回“oranges”,因为is在Colour列中出现的值最多 我的索引当前是x列 X FRUIT COLOR 10 apples green 10 apples red 10 oranges green 10 oranges orange 10 oranges yellow 10 bananas yellow 10 bananas green 我似乎总是返回一个键值对或仅返回.count()数字,并且似

我正在学习熊猫,并努力学习更简单的东西

最终,我希望我的代码只返回“oranges”,因为is在Colour列中出现的值最多

我的索引当前是x列

X    FRUIT   COLOR
10  apples  green
10  apples  red
10  oranges green
10  oranges orange
10  oranges yellow
10  bananas yellow
10  bananas green
我似乎总是返回一个键值对或仅返回.count()数字,并且似乎无法从聚合结果中仅提取结果列值

下面是我试图解决这个问题的一个代码示例-我已经尝试了很多,但这是最新的一个不起作用的示例:

df['COUNT'] = df.groupby(['FRUIT'])['FRUIT'].transform('SIZE')
copy_df = df
max = copy_df.loc[df['SIZE'] == copy_df['SIZE'].max()]
print(max)

这将返回“AttributeError:“SeriesGroupBy”对象没有属性“SIZE”-我已经尝试过其他方法,但效果更好,但我可以看出我进展不快。

我认为您需要在
转换中将
大小更改为
大小

df['SIZE'] = df.groupby(['FRUIT'])['FRUIT'].transform('size')

max1 = df.loc[df['SIZE'] == df['SIZE'].max()]
print(max1)
    X    FRUIT   COLOR  SIZE
2  10  oranges   green     3
3  10  oranges  orange     3
4  10  oranges  yellow     3
如果需要列
的顶部值,请使用
索引[0]
,然后使用索引的第一个值,因为输出已排序:

print (df.FRUIT.value_counts())
oranges    3
apples     2
bananas    2
Name: FRUIT, dtype: int64

val  = df.FRUIT.value_counts().index[0]
print (val)
oranges
另一种解决方案是使用Aggregate来检查
系列的最大值的索引值

print (df.groupby('FRUIT')['FRUIT'].size())
FRUIT
apples     2
bananas    2
oranges    3
dtype: int64

val = df.groupby('FRUIT')['FRUIT'].size().idxmax()
print (val)
oranges