我有一个大数据框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)
任何建议都欢迎。谢谢
答案 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]