Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.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 如何确定单元格是否有多个值并计算出现的次数_Python_Pandas_Multi Index - Fatal编程技术网

Python 如何确定单元格是否有多个值并计算出现的次数

Python 如何确定单元格是否有多个值并计算出现的次数,python,pandas,multi-index,Python,Pandas,Multi Index,我有一个如下表,其中我需要计算类型列包含多个值的次数 目前我的逻辑是每次检查类型单元格中是否有多个值,并放置一个计数器,但我不确定如何在Python中正确编码 我在下面尝试了这种方法,但考虑到它也是分层的,我认为它对我的情况没有帮助: from collections import Counter Counter(pd.DataFrame(data['Country'].str.split(',', expand=True)).values.ravel()) 你可以做: ## df is y

我有一个如下表,其中我需要计算类型列包含多个值的次数

目前我的逻辑是每次检查类型单元格中是否有多个值,并放置一个计数器,但我不确定如何在Python中正确编码

我在下面尝试了这种方法,但考虑到它也是分层的,我认为它对我的情况没有帮助:

from collections import Counter
Counter(pd.DataFrame(data['Country'].str.split(',', expand=True)).values.ravel())
你可以做:

## df is your data (gives pandas series)
df['type'].apply(lambda x: len(str(x).split(','))).value_counts()

## or convert it to dict
df['type'].apply(lambda x: len(str(x).split(','))).value_counts().to_dict()

使用
get_dummies
sum

df=pd.DataFrame({'type':['big,green','big','small,red']})
df.type.str.get_dummies(sep=',').sum(1)
Out[382]: 
0    2
1    1
2    2
dtype: int64

也许你应该试试这个:

df=pd.DataFrame({'type':['big,green','big','small,red']})
for i in df['type']:    print(len(i.split(',')))

您好,您能提供一些示例输出吗?我期望的输出是:car_type-多标签行数和bike_type-多标签行数,因此car应返回5,bike也应返回5。谢谢,它如何知道我正在计算car类型或bike类型,因为它是分层的?我可以包括df['car','type']吗?申请吗?是的,你可以。确保df是多索引层次的。我没有提到这些标签是以元组的形式表示的,如-(中,紫色),因此它现在生成了一个错误AttributeError:“tuple”对象没有属性“split”。那么,在这种格式下,我该如何分割和计数呢?@Py_Mel刚刚在答案中做了一个小小的更改来解决您的问题谢谢。我将尝试这个,但只是为了确认,类型是否只有这3个值,然后进行比较?另外,我的表是按汽车和自行车分级的,所以我如何区分这两个?在这种情况下,您可以创建两个“for”循环。一个给汽车,另一个给自行车。为了更好地帮助您,我必须更多地了解您的数据帧结构。