You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从列表的列表创建单列格式的Pandas DataFrame

实现单列DataFrame的两种方法

你的问题出在把每支股票的列数据作为单独的列表元素存入all_cols_list,导致DataFrame把每个元素拆成了多列。下面给你两种简单的解决办法:

方法一:修改原代码,扁平化数据列表

把原代码里的append改成extend,这样会把每列的所有数据逐个添加到列表里,而不是把整列作为一个元素存进去:

import openpyxl
import pandas as pd

xl = openpyxl.load_workbook("Stock_sample.xlsx")
sheet1 = xl["Close Price"]

all_cols = sheet1.iter_cols(min_col=2, max_col=10, values_only=True)

all_cols_list = []
for cols in all_cols:
    all_cols_list.extend(cols)  # 替换append为extend,扁平化数据

df = pd.DataFrame(all_cols_list, columns=['Close Price'])
print(df)

方法二:直接用Pandas读取并转换(更简洁)

不用openpyxl,直接用Pandas读取指定列,再通过melt函数把多列合并成一列:

import pandas as pd

# 读取Excel中第2到10列(对应B到K列)的收盘价数据
df = pd.read_excel("Stock_sample.xlsx", sheet_name="Close Price", usecols="B:K")
# 把所有列合并成单列,并重命名列名
df = df.melt(value_name='Close Price').drop('variable', axis=1)
print(df)

两种方法都能得到所有股票数据放在同一列的DataFrame,第二种方法代码更简洁,推荐使用。

内容的提问来源于stack exchange,提问作者Ammar_Fahmy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 01:10:54