pandas-将字符串转换为字符串列表

2024-10-16 23:26:07 发布

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

我有这个“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"]。我尝试了this问题中提供的解决方案,但没有成功,因为我有[]字符,它们实际上把事情搞砸了。

预期输出应为:

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

Tags: 文件csv字符串indftitletagsout
3条回答

可以使用stripsplit将字符串转换为列表。

df_out = df.assign(Tags=df.Tags.str.strip('[]').str.split(','))

df_out.Tags[0][0]

输出:

'Tag1'

或者

df.Tags=df.Tags.str[1:-1].str.split(',').tolist()

可以手动拆分字符串:

>>> df['Tags'] = df.Tags.apply(lambda x: x[1:-1].split(','))
>>> df.Tags[0]
['Tag1', 'Tag2']

相关问题 更多 >