2024-06-16 12:30:27 发布
网友
我有一个列表,其中包含以下几点:
['Pros:', 'Pros 1', 'Pros 2','Cons:','Cons 1','Cons 2']
我试图创建一个包含两列的数据框架,一列名为Pros,另一列名为Cons
Pros
Cons
预期产出:
Pros, Cons Pros 1; Pros 2,Cons 1; Cons 2
我的问题是Pros和Cons在每个列表中都会有所不同,因此我试图将Cons之前的所有文本归类为一列,将Cons之后的所有项目归类为另一列
我会采取另一种方法。使用zip_longest用None填充缺少的值。这是一种更好的pandas实践,它将使呈现/处理数据变得更容易
zip_longest
None
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]})
我会采取另一种方法。使用
zip_longest
用None
填充缺少的值。这是一种更好的pandas
实践,它将使呈现/处理数据变得更容易输出
如果你坚持你的方法,那么
相关问题 更多 >
编程相关推荐