Python中使用DataFrame时如何正确返回指定格式的元组列表
问题解决方案
错误原因
原代码的问题出在DataFrame.to_records()返回的是numpy结构化数组,直接对整个数组调用tuple()会将其转换为单个元组,无法实现逐行生成独立元组的需求,因此得不到预期的列表格式。
可用实现方案
- 方案1:使用
itertuples逐行转换(性能最优,最推荐)
car_tuple = [tuple(row) for row in CAR_DF[['name_car', 'year']].itertuples(index=False)]
- 方案2:基于
to_numpy方法转换
car_tuple = list(map(tuple, CAR_DF[['name_car', 'year']].to_numpy()))
- 方案3:修改原有
to_records逻辑,逐行转元组
car_tuple = [tuple(row) for row in CAR_DF[['name_car','year']].to_records(index=False)]
以上任意方案执行后,都可以得到你需要的[("CarB", 2000), ("CarA", 2002)]格式结果。
内容的提问来源于stack exchange,提问作者jimmy
相关产品推荐
相关产品推荐

