用于列出python的字符串向量

用于列出python的字符串向量,python,pandas,dataframe,word2vec,Python,Pandas,Dataframe,Word2vec,我在Python中工作,数据框中有一列是字符串,如下所示: df['set'] 0 [911,3040] 1 [130055, 99832, 62131] 2 [19397, 3987, 5330, 14781] 3 [76514, 70178, 70301, 76545] 4 [79185, 38367, 131155, 79433] 我希望是: ['911','3040'],['130055','99832','62131'],['19397','3987','5330','

我在Python中工作,数据框中有一列是字符串,如下所示:

df['set'] 

0  [911,3040]
1  [130055, 99832, 62131]
2  [19397, 3987, 5330, 14781]
3  [76514, 70178, 70301, 76545]
4  [79185, 38367, 131155, 79433]
我希望是:

['911','3040'],['130055','99832','62131'],['19397','3987','5330','14781'],['76514',70178','70301','76545'],['79185','38367','131155','79433']
为了能够运行Word2Vec:

model = gensim.models.Word2Vec(df['set'] , size=100)
谢谢

我认为您需要:

model = gensim.models.Word2Vec([[str(y) for y in x] for x in df['set']] , size=100)

L = [[str(y) for y in x] for x in df['set']]
print (L)

[['911', '3040'],
 ['130055', '99832', '62131'], 
 ['19397', '3987', '5330', '14781'],
 ['76514', '70178', '70301', '76545'], 
 ['79185', '38367', '131155', '79433']]

如果您有一列字符串,我建议您查看不同的解析方法

下面是我如何使用
ast.literal\u eval
实现的

>>> import ast
>>> [list(map(str, x)) for x in df['set'].apply(ast.literal_eval)]
或者,使用
pd.eval
-

>>> [list(map(str, x)) for x in df['set'].apply(pd.eval)]  # 100 rows or less
或者,使用
yaml.load
-

>>> import yaml
>>> [list(map(str, x)) for x in df['set'].apply(yaml.load)]

要创建一个新列(
stru set
),将
set
列中的项目转换为字符串:

df["str_set"] = [[str(item) for item in df.loc[row, "set"]] for row in range(len(df["set"]))]

通过简单的列表理解将每个元素转换为字符串,并覆盖旧列:

df['set']  = [[str(i) for i in row] for row in df['set']]
根据提供的数据执行:

data_col = [911,3040], [130055, 99832, 62131], [19397, 3987, 5330, 14781], [76514, 70178, 70301, 76545],[79185, 38367, 131155, 79433]

out = [[str(i) for i in row] for row in data_col]

out

[['911', '3040'],
 ['130055', '99832', '62131'],
 ['19397', '3987', '5330', '14781'],
 ['76514', '70178', '70301', '76545'],
 ['79185', '38367', '131155', '79433']]

不确定这是否是大数据集的最快方式,因为迭代次数很多。

df['set'].tolist()
Ah,它是一个字符串?在这种情况下,您需要首先转换它。你们有几排?少于100?所以该列是一个整数列表,您想要一个字符串列表?抱歉,但它与我的答案相同:(抱歉,刚刚刷新了页面并看到了它:(投了您的赞成票。是的,我不想说您复制了我的答案,但最好的是删除它,因为相同。
data_col = [911,3040], [130055, 99832, 62131], [19397, 3987, 5330, 14781], [76514, 70178, 70301, 76545],[79185, 38367, 131155, 79433]

out = [[str(i) for i in row] for row in data_col]

out

[['911', '3040'],
 ['130055', '99832', '62131'],
 ['19397', '3987', '5330', '14781'],
 ['76514', '70178', '70301', '76545'],
 ['79185', '38367', '131155', '79433']]