访问列表数组中的第一个元素(Python)

时间:2019-03-05 12:30:29

标签: python arrays list arraylist

我有一个大数据框df_c,其中有一列type_info1,每行包含一个包含两个元素的列表。

我需要访问数组对象上每个列表的第一个元素。有没有一种快速的方法可以直接在数据帧上进行操作,而无需通过for循环等,也可以使用numpy

df_c.loc[:,'type_info1'].values

结果:

array([list(['AB#5', 'XYZ/ABCD']), list(['TB#5', 'XYZ/ABCD']),
       list(['CD#5', 'XYZ/ABCD']), ..., list(['BF#5', 'XYZ/ABCD']),
       list(['GH#7', 'XYZ/ABCD']), list(['FL#5', 'XYZ/ABCD'])],
      dtype=object)

任何建议都欢迎。谢谢

2 个答案:

答案 0 :(得分:1)

您可以为此使用列表理解:

[item[0] for item in df_c.loc[:,'type_info1'].values]

或者也许是邮编:

list(zip(*df_c.loc[:,'type_info1'].values))[0]

这两个都假设所有列表都不为空。

如果某些内容为空,您可以例如跳过列表理解中的那些:

[item[0] for item in df_c.loc[:,'type_info1'].values if item]

答案 1 :(得分:1)

使用访问器:df_c['type_info1'].str[0]