python 如何将 Dataframe 列中的列表合并为单个列表

cpjpxq1n  于 2023-01-16  发布在  Python
关注(0)|答案(3)|浏览(196)

一些上下文,我有一些数据,我正在做一些文本分析,我刚刚对它们进行了标记化,我想合并dataframe列中的所有列表,以便进行进一步的处理。
我的df是:

df = pd.DataFrame({'title': ['issue regarding app', 'graphics should be better'], 'text': [["'app'", "'load'", "'slowly'"], ["'interface'", "'need'", "'to'", "'look'", "'nicer'"]]})`

我想将"文本"列中的所有列表合并为一个列表,并删除左/右引号。
大概是这样的

lst = ['app', 'load', 'slowly', 'interface', 'need', 'to', 'look', 'nicer']`

谢谢你的帮助!

flvlnr44

flvlnr441#

您可以使用applylambda来完成此操作
使用apply方法是将函数应用于'text'列中的每个元素,而sum函数是将所有列表连接在一起

lst = sum(df["text"].apply(lambda x: [i.replace("'", "") for i in x]), [])

输出:

['app', 'load', 'slowly', 'interface', 'need', 'to', 'look', 'nicer']

如果你想替换多个元素,比如"'“"a",那么translatereplace更有效:

trans = str.maketrans("", "", "'a")
lst = sum(df["text"].apply(lambda x: [i.translate(trans) for i in x]), [])
eulz3vhy

eulz3vhy2#

使用简单的列表解析:

out = [x.strip("'") for l in df['text'] for x in l]

输出:

['app', 'load', 'slowly', 'interface', 'need', 'to', 'look', 'nicer']
f8rj6qna

f8rj6qna3#

我们还可以迭代序列中的每个列表,并使用append()将它们连接起来,最后使用concat()将它们转换成一个列表,产生与上面相同的输出。

相关问题