熊猫DataFrame中的单词拆分

时间:2019-01-03 02:58:51

标签: python pandas dataframe

我有一个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']

请提出标记它的可能方法。

2 个答案:

答案 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)))