如何通过将列的字符串列表与python组合来创建列表列表?

How to create a list of lists by combining lists of strings of a column with python?

提问人:omi 提问时间:11/4/2022 最后编辑:omi 更新时间:11/5/2022 访问量:87

问:

我的数据集中有一列,由如下所示的字符串列表组成:

['平板电脑', '手机', '人']

['人', '房子']

. . .

['人', '计算机']

['电脑', '笔记本电脑']

如何获取包含此列元素的列表列表?我想要这样的输出:

[['平板电脑', '手机', '人'],['人', '房子'],. . .,['人', '电脑'],['电脑', '笔记本电脑']]

Python Pandas 字符串 列表 嵌套列表

评论

0赞 chrslg 11/6/2022
你的问题不够明确。请包括一个最小的可重复示例。显示构建代码的数据帧示例。

答:

0赞 Faisal Nazik 11/4/2022 #1

如果你喜欢df

                      column
0  ['tablet', 'mobile, man']
1        ['people', 'house']
2      ['people, 'computer']
3     ['computer', 'laptop']

您可以通过调用列来获取列表tolist()

df["column"].tolist()

输出:

[['tablet', 'mobile', 'man'], ['people', 'house'], ['people', 'computer'], ['computer', 'laptop']]

评论

0赞 omi 11/4/2022
不,正如我在问题中所述,每列的项目都是字符串格式(如“tablet”)。所以,这个解决方案无济于事。
0赞 Faisal Nazik 11/4/2022
你说字符串列表,比如 ['tablet', 'mobile', 'man'],那么我想这应该可以工作。你试过了吗?如果它不起作用,会出现任何错误??
0赞 omi 11/4/2022
是的。我试过了。它给了我这样的输出:[“['平板电脑', '移动', '人']”, “['人', '房子']”, “['人', '电脑']”, “['电脑', '笔记本电脑']”]
2赞 jezrael 11/4/2022 #2

在列表推导中使用ast.literal_eval转换字符串列表:

import ast

L = [ast.literal_eval(x) for x in df["column"]]
print (L)
[['tablet', 'mobile', 'man'], ['people', 'house'], 
 ['people', 'computer'], ['computer', 'laptop']]
0赞 theabc50111 11/5/2022 #3
import pandas as pd

result_list = []

df = pd.read_csv("file_name")
series_1 = df.loc[::, "column_name"]

for s in series_1:
    list1 = s.strip("[]").replace(" ", "").replace("'", "").split(",")
    result_list.append(s)

print(result_list)

评论

0赞 chrslg 11/6/2022
因为你有两个答案(这个似乎是回答真正问题的答案。虽然也是迄今为止更快的答案),但您可能希望删除错误的版本。