当前位置: 首页 > 知识库问答 >
问题:

熊猫-将字符串转换为字符串列表[重复]

彭鸿彩
2023-03-14

我有这个“file.csv”文件要和熊猫一起读:

Title|Tags
T1|"[Tag1,Tag2]"
T1|"[Tag1,Tag2,Tag3]"
T2|"[Tag3,Tag1]"

使用

df = pd.read_csv('file.csv', sep='|')

输出为:

  Title              Tags
0    T1       [Tag1,Tag2]
1    T1  [Tag1,Tag2,Tag3]
2    T2       [Tag3,Tag1]

我知道,Tags列是一个完整的字符串,因为:

In [64]: df['Tags'][0][0]
Out[64]: '['

我需要将其作为字符串列表来阅读,如[“Tag1”、“Tag2”]。我尝试了这个问题中提供的解决方案,但没有成功,因为我的[]字符实际上会把事情搞砸。

预期输出应为:

In [64]: df['Tags'][0][0]
Out[64]: 'Tag1'

共有3个答案

阳福
2023-03-14

我认为您可以使用json模块。

import json
import pandas

df = pd.read_csv('file.csv', sep='|')
df['Tags'] = df['Tags'].apply(lambda x: json.loads(x))

因此,这将像以前一样加载数据帧,然后对标记列中的每个项应用lambda函数。lambda函数调用json.loads(),将列表的字符串表示形式转换为实际列表。

谷梁英资
2023-03-14

df.Tags=df.Tags.str[1:-1].str.split(',').tolist()
长孙阳成
2023-03-14

您可以手动拆分字符串:

>>> df['Tags'] = df.Tags.apply(lambda x: x[1:-1].split(','))
>>> df.Tags[0]
['Tag1', 'Tag2']
 类似资料:
  • 问题内容: 我有一个带有ID号的大型数据框: 这些现在都是字符串。 我想转换为不使用循环-为此我使用。 问题是我的某些行包含无法转换为的脏数据,例如 如何(不使用循环)删除这些类型的事件,以便我可以放心使用? 问题答案: 您需要向功能添加参数: 如果是列: 但非数字会转换为,因此所有值都是。 对于需要转换到一些值,例如,然后转换为: 样品: 编辑:如果使用0.25+大熊猫,则可以使用:

  • 我对任何编程都非常陌生,所以请原谅我的无知,因为我不知道如何做一些看起来很简单的事情。 我所要做的就是获取任何字符串数组(称之为名称),比如: 并将其从列表中删除,并将其转换为字符串: 我似乎无法理解这一点,也找不到类似的帖子。

  • 从数据框列中删除字符串列表,如我的代码所示: 我的名单上会有 非常感谢。

  • 问题内容: 我有一个清单 我想将其转换为字典 我该怎么做? 问题答案: 采用: 返回: 如果需要整数,请在以下位置更改分配: 这将给出:

  • 问题内容: 我想替换列中的子字符串 到。 需求输出 我尝试,但它返回。 问题答案: 使用与更换和:

  • 问题内容: 我有一个pandas数据框。列之一包含一个列表。我希望该列为单个字符串。 例如,我的列表[‘one’,’two’,‘3’]应该简单地是‘1、2、3’ 给我[‘一个,两个,三个],[‘四个’,’五个’,’六个’],其中第二个列表来自下一行。不用说,对于数百万行,这种跨行连接不仅是不正确的,而且还会杀死我的内存。 问题答案: 在转换列表之前,您当然不应该转换为字符串。尝试: 另请注意,会将