假设我有一个训练数据集
r1: 便宜, 昂贵 -> 价格
r2: 兴奋 -> 娱乐
r3: 热, 夏天 -> 天气
r4: 钱 -> 价格
r5: 雨 -> 天气
然后我想按以下模式显示:
价格 -> 便宜, 昂贵, 钱
娱乐 -> 兴奋
天气 -> 热, 夏天, 雨
有人知道吗?我正在进行一项自然语言处理研究。谢谢。
回答:
import pandas as pd# Dictionary of itemsd = {'words' : [ [ 'cheap', 'expensive'], ['excited'], ['hot', 'summer'], ['money'], ['rain'] ], 'category': ['price', 'entertainment', 'weather', 'price', 'weather']}# Convert dictionary to dataframedf = pd.DataFrame(d)# Unpack the list of 'words' by joining with ','df.words = df.words.str.join(',')# Groupby and aggregate to get the unique 'words' for each 'category'new_df = df.groupby('category').agg({'words':'unique'})# Since the groupby results in a list of items, unpack by joining with ','new_df.words = new_df.words.str.join(',')# reset_index() to convert the groupby object to a dataframe# This is optional. If not used, 'category' will the index of the dataframe.new_df.reset_index(inplace=True)new_df