Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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:给我第一个n行,其中A列中的值等于X,在C列中按类别分组_Python_String_Loops_Count_Group By - Fatal编程技术网

Python:给我第一个n行,其中A列中的值等于X,在C列中按类别分组

Python:给我第一个n行,其中A列中的值等于X,在C列中按类别分组,python,string,loops,count,group-by,Python,String,Loops,Count,Group By,我的Python数据框架如下所示: 我想对数据集进行子集划分,以便: 1.对于每个区域,我都会收到代表前三次会议和活动字段前两次调用的行/帐户 下面是我想要的数据集: 我目前正在使用效率低下的变通方法来获取所需的数据集。基本上,我创建了两个新的列来总结每行的会议和通话次数。然后我说,给我每个区域内的行,其中会议总数等于3,通话总数等于2 有没有更好的编码方法?非常感谢您的帮助 这是pandas的descripe和groupby函数的完美用例 我会浏览他们的教程,因为用这种格式解释有点困难。 一

我的Python数据框架如下所示:

我想对数据集进行子集划分,以便: 1.对于每个区域,我都会收到代表前三次会议和活动字段前两次调用的行/帐户

下面是我想要的数据集:

我目前正在使用效率低下的变通方法来获取所需的数据集。基本上,我创建了两个新的列来总结每行的会议和通话次数。然后我说,给我每个区域内的行,其中会议总数等于3,通话总数等于2


有没有更好的编码方法?非常感谢您的帮助

这是pandas的descripe和groupby函数的完美用例

我会浏览他们的教程,因为用这种格式解释有点困难。
一个可能的解决方案是分别考虑呼叫和会议:按区域分组,选择前3或2,并连接结果。假设您的数据是一个数据帧:

d1 = data[data['Activity'] == 'meeting'].groupby('Region')\
       .apply(lambda x: x.sort_values('Rank')[:3])
d2 = data[data['Activity'] == 'call'].groupby('Region')\
       .apply(lambda x: x.sort_values('Rank')[:2])    
pd.concat([d1, d2])
如果电话和会议的截止日期是相同的,比如说3,那么你可以用一行代码离开:

data.groupby(['Region', 'Activity'], as_index=False)\
             .apply(lambda x: x.sort_values('Rank')[:3])

您的数据在数据库中吗?Account中的值是唯一的吗?有必要确定您在数据集上的具体工作方式,python太通用了。它是sql数据库吗?熊猫数据帧?明文文件读入命名元组列表?还有别的吗?在这些场景中,创建两个新列意味着非常不同的事情。这是一个Python数据框架。这个答案没有帮助。这真的只是一个评论。thx的快速反应;看了你的链接…不完全是我想要的是的,它是一个数据帧;让我试试看!谢谢:谢谢!如果各个地区的截止值不同怎么办?例如,区域1有3次电话和2次会议,而区域2有1次电话和1次会议?在这种情况下,代码是如何更改的?