如何用Python将Excel两列数据转为交替排列的列表?
实现Excel列交替排列列表的方法
首先,你执行list(df)只返回列标题的核心原因:DataFrame对象直接转换为列表时,默认提取的是列标签(列名),而非表格中的数据内容。
以下是适合新手的最优实现代码,附详细注释:
import pandas as pd # 行业惯例用pd作为pandas的别名,代码更简洁 path = r"Profiles.xlsx" # 读取指定列,删除全空行(仅移除F、O列都为空的行) df = pd.read_excel(path, usecols="F,O").dropna(how="all") # 方法1:列表推导式(逻辑直观,新手易理解) alternate_list = [item for row in df.values for item in row] # 方法2:numpy展平(大数据量下更高效) # alternate_list = df.values.flatten(order='C').tolist() # 可选:将数据中的NaN替换为空字符串(避免列表出现nan值) # alternate_list = ["" if pd.isna(item) else item for item in alternate_list] print(alternate_list)
关键细节解释:
df.values:将DataFrame转换为二维数组,结构为[[F1值, O1值], [F2值, O2值], ...],对应原表格的每一行数据- 列表推导式通过两层遍历,先取每一行,再依次提取行内的F、O元素,最终生成
F1,O1,F2,O2,...的交替顺序 flatten(order='C'):按行优先的规则展平二维数组,和列表推导式效果完全一致,处理大量数据时性能更优- 若你的数据存在单个空值(非全空行),可以启用最后一行代码,把
nan值替换为空白字符串,让列表更规整
内容的提问来源于stack exchange,提问作者Rebecca Hughes
相关产品推荐
相关产品推荐

