我有一个DataFrame,我想用文字打断文本,但是在这组文字之间却出现了方括号。我正在使用下面提到的代码。
for index1, row1 in df.iterrows():
words1 = set([word for word in str(row1.values).split()])
我正在从CSV文件创建一个DataFrame,然后将其分解为单词。
0,"['cell', 'study', 'protein', 'result', 'effect', 'gene', 'treatment', 'may', 'level', 'mouse']"
输出->
{'effect', 'result', 'treatment', '[0', 'protein', 'may', 'level', "'cell", "mouse']", 'study', 'gene'}
但所需的输出是
{'effect', 'result', 'treatment', '0', 'protein', 'may', 'level', 'cell', 'mouse', 'study', 'gene'}
为什么我在输出中得到列表[0', 'protein', 'may', 'level', "'cell", "mouse']
?
请提出标记它的可能方法。
答案 0 :(得分:1)
调用str(row1.values)
时,会将单词列表转换为看起来像列表的字符串。然后应用.split()
时,它将用空格分隔字符串。显然,方括号不是空格,而是保留原样。
如果您想将列表转换为集合(这就是您似乎正在做的,大概是为了消除重复项),只需对每行应用set()
:
words1 = set(row1.values)
但是,您很可能希望一次对整个数据框执行此操作:
df.apply(set, axis=1)
答案 1 :(得分:0)
尝试
data['column'] = data['column'].apply(lambda x: ', '.join(set(x)))