我在使用Pandas开发 Jmeter 板时被卡住了。这是一个场景:
我正在导入和转换CSV文件,以便了解我正在工作的团队的一些见解。
|ID |Area Path |
|--------|--------------------------------------|
| 544 | [Level 1, Level 2, Level 3] |
| 545 | [Level 1, Level 2] |
| 546 | [Level 1] |
| 547 | [Level 1, Level 2, Level 3, Level 4] |
如您所见,列 Area Path 没有模式。有时我会发现一个列表上有1个或2个或3个或4个项目。
为了访问此列中的每一行以获取所需信息,我遇到了一个问题。如果列表只有一个项目,我必须使用[0]位置,如果列表有2个或更多项目,我必须使用[1]位置。
我试过做不同的事情,下面这一个是我的最后一次尝试:
def Extract(lst):
if dados['Area Path'].str.len() == 1:
return [item[0] for item in dados['Area Path']]
elif dados['Area Path'].str.len() == 2:
return [item[-1] for item in dados['Area Path']]
elif dados['Area Path'].str.len() == 3:
return [item[1] for item in dados['Area Path']]
elif dados['Area Path'].str.len() == 4:
return [item[1] for item in dados['Area Path']]
lst = [dados['Area Path']]
indice_novo = Extract(lst)
dados['Team'] = indice_novo
问题是我不能遍历作为列的列表。.str.len()
提供的输出很棒,但并没有完全帮助我。
你能帮我解决这个问题吗?
谢谢,马塞洛
2条答案
按热度按时间oxosxuxt1#
下面是使用
map()
的解决方案或
输出:
bnlyeluc2#
根据您的注解,
Area Path
列包含列表。如果是这样,则您访问列的方式不正确。访问列中列表的正确方法是:这将用列表的列表填充
lst
变量,看起来像这样:然后,在Extract()函数中,您可以根据所需的逻辑执行过滤:
这个答案基于您的代码,可能不是最优化的方法。