Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.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 使用列中每个单元格的多个值创建df.mode_Python_Pandas - Fatal编程技术网

Python 使用列中每个单元格的多个值创建df.mode

Python 使用列中每个单元格的多个值创建df.mode,python,pandas,Python,Pandas,我有一个带有关键字列的数据框。该列中的每个单元格都有5-10个逗号分隔的单独值,由1-3个单词组成。如何计算列中出现最多的关键字 我尝试过df.Keywords.mode,但它会返回每个单元格的所有值,因为它们显然不会在每个单元格中出现多次 这里有一个图像来说明: 感谢所有的意见 谢谢 首先将expand=True用于DataFrame和重塑,然后按计数并按以下方式获取最大值: 如果没有缺失值,另一种解决方案是展平拆分列表并按计数器计数: 首先将expand=True用于DataFrame,然后

我有一个带有关键字列的数据框。该列中的每个单元格都有5-10个逗号分隔的单独值,由1-3个单词组成。如何计算列中出现最多的关键字

我尝试过df.Keywords.mode,但它会返回每个单元格的所有值,因为它们显然不会在每个单元格中出现多次

这里有一个图像来说明:

感谢所有的意见

谢谢

首先将expand=True用于DataFrame和重塑,然后按计数并按以下方式获取最大值:

如果没有缺失值,另一种解决方案是展平拆分列表并按计数器计数:

首先将expand=True用于DataFrame,然后按重塑,然后按计数并按获取最大值:

如果没有缺失值,另一种解决方案是展平拆分列表并按计数器计数:


你能给我们看看你的df在熊猫身上的样子吗?您是否有一列列表?5-10个逗号分隔的单个值是否表示@Jezrael的答案假设的一个大字符串,还是5-10个字符串的列表?向我们展示df。关键字[0]您能向我们展示一下您的df在熊猫中的样子吗?您是否有一列列表?5-10个逗号分隔的单个值是否表示@Jezrael的答案假设的一个大字符串,还是5-10个字符串的列表?向我们展示df.关键字[0]非常感谢!带计数器的第二种方法正是我想要的!我必须读一读这篇文章,因为我对列表的理解有点困惑,但这是一个极好的机会。非常感谢!谢谢!带计数器的第二种方法正是我想要的!我必须读一读这篇文章,因为我对列表的理解有点困惑,但这是一个极好的机会。非常感谢!
df = pd.DataFrame({'Keywords':['aa,bb,vv,vv','aa,aa,cc,bb','zz,bb,aa,ss']})

N = 5
df1 = (df.Keywords.str.split(',', expand=True)
         .stack()
         .value_counts()
         .head(N)
         .rename_axis('val')
         .reset_index(name='count'))
print (df1)
  val  count
0  aa      4
1  bb      3
2  vv      2
3  zz      1
4  cc      1
from collections import Counter
N = 5
df1 = pd.DataFrame(Counter([y for x in df.Keywords for y in x.split(',')]).most_common(N), 
                   columns=['val','count'])
print (df1)
  val  count
0  aa      4
1  bb      3
2  vv      2
3  zz      1
4  cc      1