Python中是否有函数可直接将pandas DataFrame转为平铺行元素的列表?
实现方案
pandas没有单独封装专属的平铺函数,可通过已有方法一行实现需求:
# 最高效的通用写法,适配pandas 0.24及以上所有版本 result = df.to_numpy().flatten(order='C').tolist() print(result) # 输出:[5, 6, 7, 8, 9, 1]
其中order='C'代表按行优先的顺序展开,是默认参数,追求精简也可以省略,显式标注可读性更高。
其他可选写法
- 适配pandas 0.24以下的旧版本:
result = df.values.flatten().tolist() - 不需要显式转numpy数组的写法:
# 注意默认stack会自动丢弃空值,如需保留空值请加dropna=False参数 result = df.stack().tolist()
内容的提问来源于stack exchange,提问作者Fabiano Briao
相关产品推荐
相关产品推荐

