基于特定字符串提取列表元素并存储为数据帧

2024-06-16 12:30:27 发布

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

我有一个列表,其中包含以下几点:

['Pros:', 'Pros 1', 'Pros 2','Cons:','Cons 1','Cons 2']

我试图创建一个包含两列的数据框架,一列名为Pros,另一列名为Cons

预期产出:

Pros, Cons
Pros 1; Pros 2,Cons 1; Cons 2

我的问题是ProsCons在每个列表中都会有所不同,因此我试图将Cons之前的所有文本归类为一列,将Cons之后的所有项目归类为另一列


Tags: 数据项目文本框架列表conspros
1条回答
网友
1楼 · 发布于 2024-06-16 12:30:27

我会采取另一种方法。使用zip_longestNone填充缺少的值。这是一种更好的pandas实践,它将使呈现/处理数据变得更容易

import pandas as pd
from itertools import zip_longest

li = ['Pros:', 'Pros 1', 'Pros 2', 'Cons:', 'Cons 1', 'Cons 2', 'Cons 3']
cons_index = li.index('Cons:')
pros, cons = li[1:cons_index], li[cons_index + 1:]
df = pd.DataFrame(zip_longest(pros, cons), columns=['Pros', 'Cons'])
print(df)

输出

     Pros    Cons
0  Pros 1  Cons 1
1  Pros 2  Cons 2
2    None  Cons 3

如果你坚持你的方法,那么

import pandas as pd

li = ['Pros:', 'Pros 1', 'Pros 2', 'Cons:', 'Cons 1', 'Cons 2', 'Cons 3']
cons_index = li.index('Cons:')
pros, cons = ';'.join(li[1:cons_index]), ';'.join(li[cons_index + 1:])
df = pd.DataFrame({'Pros': [pros], 'Cons': [cons]})

相关问题 更多 >