列作为一系列字符串列表导出到CSV,读取时仅解释为一系列字符串

2024-10-06 11:24:33 发布

您现在位置:Python中文网/ 问答频道 /正文

Python新手——我正在做一些文本预处理,并尝试导出csv文件,其中包含一列字符串列表

data['Lemmas']

0                                                 [require]
1                               [speak, gentleman, wk, ago]
2         [material, come, soft, plastic, st, use, pste,...
3                               [send, email, confirmation]
type(data['Lemmas'][0])

list

读取此csv时,Pandas将此列解释为一系列字符串

0                                               ['require']
1                       ['speak', 'gentleman', 'wk', 'ago']
2         ['material', 'come', 'soft', 'plastic', 'st', ...
3                         ['send', 'email', 'confirmation']
type(data_verbatims['Lemmas'][0])

str

我可以通过一些笨拙的字符串操作来解决这个问题,但是必须有更好的方法来正确导出/读取此列,或者将其转换回原始结构

import string

lemmas=[]

for words in data_verbatims['Lemmas']:
    for char in words:                 
        if char in string.punctuation:
            words = words.replace(char, '')
    lemmas.append(words)

lemmas = pd.Series(lemmas)
lemmas = lemmas.apply(lambda x: x.split())

Tags: csv字符串indatarequireagomaterialwords
1条回答
网友
1楼 · 发布于 2024-10-06 11:24:33

如果我理解正确,我们可以在这里使用^{}

                                          Lemmas
0                                    ['require']
1            ['speak', 'gentleman', 'wk', 'ago']
2  ['material', 'come', 'soft', 'plastic', 'st']
3              ['send', 'email', 'confirmation']

type(df['Lemmas'][0])

#Out
str

from ast import literal_eval

df['Lemmas'] = df['Lemmas'].apply(literal_eval)

                                Lemmas
0                            [require]
1          [speak, gentleman, wk, ago]
2  [material, come, soft, plastic, st]
3          [send, email, confirmation]
type(df['Lemmas'][0])

#Out
list

相关问题 更多 >