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