如何将Pandas DataFrame转换为含字符串元素的列表而非列表的列表
解决嵌套列表转单层字符串列表的问题
没问题,我来帮你搞定这个转换!你现在得到的是嵌套列表(每个元素都是只含一个字符串的子列表),想要把它转成所有元素都是无方括号的字符串的单层列表,这里有几种简单高效的方法:
方法1:直接处理已有的嵌套列表(列表推导式)
这是最直观的方式,针对你已经得到的qwe列表,用列表推导式提取每个子列表的唯一元素:
flat_list = [item[0] for item in qwe] print(flat_list)
针对你给出的样本输入,运行后会得到:
['SKP', 'SKP', 'SKP', ..., 'TRF', 'TSR', 'TSR']
方法2:在pandas阶段直接优化(更高效)
其实你可以避免生成嵌套列表的步骤,直接从pandas的Series中提取单层列表,省去后续转换的麻烦:
原来的代码里,你把flights的fromm列转成了DataFrame再取values.tolist(),这才生成了嵌套列表。改成直接提取Series并转列表:
import pandas as pd flights = pd.read_csv("airportroutes.csv") # 直接提取fromm列的Series,转成单层列表 flat_list = flights['fromm'].tolist() print(flat_list)
这样一步就能得到你想要的结果,效率更高,代码也更简洁。
方法3:用numpy扁平化数组(备选方案)
如果你已经有了嵌套列表qwe,也可以借助numpy来扁平化:
import numpy as np flat_list = np.array(qwe).flatten().tolist()
这种方法适合处理更复杂的嵌套结构,但对于你的场景来说,列表推导式或者直接从Series提取会更轻便。
内容的提问来源于stack exchange,提问作者user13714027




