我有一个来自社交网络的消息数据框。在这个日期框架中,我使用lambda函数创建了一个不带停用词的新列。结果是在此新列中,将值插入列表中。我需要的是在此列表中获取值。
我所拥有的:
raw_data = {'CLASS':['1', '2', '3', '1', '2','3','2'],
'MESSAGES': [['mama', 'said', 'home'],['dad', 'said', 'soccer', 'reality'], ['matrix', 'you'],
['run', 'neo', 'free'], ['what', 'doing'], ['begnning', 'believe'],
['choice', 'let', 'you', 'free', 'mind']]}
dfRaw = pd.DataFrame(raw_data, columns = ['CLASS','MESSAGES'])
我需要什么:
clean_data = {'CLASS':['1', '2', '3', '1', '2','3','2'],
'MESSAGES':['mama, said, home', 'dad, said, soccer, reality', 'matrix, you', 'run, neo, free', 'what, doing','begnning, believe','choice, let, you, free, mind']}
dfEndResult = pd.DataFrame(clean_data, columns = ['CLASS','MESSAGES'])
我在堆栈上的某个位置读了一个建议功能的主题:
dfRaw.applymap(lambda x: x if not isinstance(x, list) else x[0] if len(x) else '')
但是对于我来说,此功能并不有趣,因为当列表仅包含一个元素时,此功能非常有效。就我而言,每个单元格都有不同的大小列表。
谢谢大家的帮助。
答案 0 :(得分:1)
使用str.join
:
dfRaw['MESSAGES'] = dfRaw['MESSAGES'].str.join(', ')
CLASS MESSAGES
0 1 mama, said, home
1 2 dad, said, soccer, reality
2 3 matrix, you
3 1 run, neo, free
4 2 what, doing
5 3 begnning, believe
6 2 choice, let, you, free, mind