如何将数据框列中的列表合并为单个列表

问题描述 投票:0回答:4

在一些上下文中,我正在对一些数据进行一些文本分析,我刚刚对它们进行了标记,我想组合数据框列中的所有列表以进行进一步处理。

我的 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']`

感谢您的帮助!

python pandas list dataframe nlp
4个回答
4
投票

您可以使用

apply
lambda

来实现这一点

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"
translate
会比
replace
更高效:

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

3
投票

使用简单的列表理解:

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

输出:

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

2
投票

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


0
投票

我相信这也可以通过以下方式完成:

import itertools
lst = list(itertools.chain.from_iterable(df['text'].tolist()))
© www.soinside.com 2019 - 2024. All rights reserved.