我有数据框,我需要使用 Python 查找前 20 个重复的句子,请让我知道如何去做Column AHello How are you?This ticket is not validHow are things at you end?Hello How are you?How can I help you?Please help me with ticketsThis ticket is not validHello How are you?预期产出Column A Frequency of Repeated sentenceHello How are you? 3This ticket is not valid 2How can I help you? 1...到目前为止的代码df = pd.read_csv("C:\\Users\\aaa\\abc\\Analysis\\chat.csv", encoding="ISO-8859-1") df['word_count'] = df['Column A'].apply(lambda x: len(str(x).split(" ")))df[['Column A','word_count']].head()for i, g in df.groupby('Column A'): print ('Frequency of repeating sentence : {}'.format(g['Column A'].duplicated(keep=False).sum()))我需要一个数据框中的结果,该数据框可以在最终结果中使用“A 列”和“频率”列写入 CSV
4 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
这是一种使用方法.value_counts
:
df['ColumnA'].value_counts()
要将其添加为列,您可以执行以下操作:
df['Frequency'] = df['ColumnA'].map(df['ColumnA'].value_counts())
隔江千里
TA贡献1906条经验 获得超10个赞
尝试这个:
df['count']=df.groupby(['ColumnA'] ).count()
df.sort_values(by='count', ascending=False)
print(df.head(20))
慕的地8271018
TA贡献1796条经验 获得超4个赞
df['count'] = df.groupby('Sentence')['Sentence'].transform('count')
df = df.sort_values(by = 'count', ascending = False)
df.head(20)
这将在原始数据框中添加一列“计数”,其中将包含相应句子的频率。transform()返回与原始数据框对齐的系列。
慕哥9229398
TA贡献1877条经验 获得超6个赞
df['count'] = df.groupby('Sentence')['Sentence'].transform('count')
df = df.sort_values(by = 'count', ascending = False)
df.head(20)
这将在原始数据框中添加一列“计数”,其中将包含相应句子的频率。transform()返回与原始数据框对齐的系列。
添加回答
举报
0/150
提交
取消