我有一个panda数据框,它有一列是这样的。
| 句子|
| - ------|
| ["这是文本。","这是另一个文本。","这也是文本。","甚至更多文本。"]|
| ['另一行中的内容相同。','另一行中的另一个文本。','第二行中的文本。','第二行中的最后一个文本。']|
在每一行中有10个用逗号分隔的""或""句子。列类型是"str"。我无法将其转换为字符串列表。
我想转换此 Dataframe 的值,使其如下所示:
[['This', 'is', 'text'], ['This', 'is', 'another', 'text'], ['This', 'is', 'also', 'text'], ['Even', 'more', 'text']]
我试过这样的方法:
new_splits = []
for num in range(len(refs)):
komma = refs[num].replace(" ", "\', \'")#regex=True)
new_splits.append(komma)
还有这个
new_splits = []
for num in range(len(refs)):
splitted = refs[num].split("', '")
new_splits.append(splitted)
免责声明:我需要这个来评估蓝色分数,还没有找到一种方法来做这类数据集。提前感谢!
3条答案
按热度按时间z9ju0rcb1#
可以在一行中使用
np.char.split
:@Kata如果你认为
sentences
的列类型是str,意味着每一行的元素是字符串而不是列表,例如"['This is text.', 'This is another text.', 'This is also text.', 'Even more text.']"
,那么你需要先把它们转换成列表,一种方法是使用ast.literal_eval
。数据注解:不推荐使用这种存储数据的方式。如果可能,请修复数据的来源。每个单元格中的数据最好是字符串,而不是列表,或者至少只是列表,而不是表示列表的字符串。
njthzxwz2#
你可以在你的 Dataframe 上使用
apply
方法。如果你说每行有10个句子,那么你可以像这样groupby
每10个句子。hrysbysz3#
对于
df
Dataframe ,您可以尝试以下操作:.strip
、[
、]
、'
和"
。.split
将行转换成句子列表。.explode
返回结果列,通过.findall
将句子中的单词提取到列表中。结果
df["splitted]
是