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

为何列表中赋值后原DataFrame变量仍为空?能否直接访问?

问题原因与解决方案

为什么df5是空的,dfList[0]有数据?

  • 你最初把df5、df6这些空DataFrame放进dfList时,列表里存的是这些变量的引用。但循环里的dfList[i] = pd.DataFrame(...)操作,并不是修改原来的df5对象,而是把dfList的第i个位置重新赋值成了一个全新的分割后DataFrame。这时候df5依然指向最开始创建的空DataFrame,所以打印出来是空的,而dfList[0]已经变成了新的对象,自然有数据。

能不能直接通过df5获取目标数据?

可以,只要调整代码逻辑,直接给df5等变量赋值,而不是修改列表元素:

import pandas as pd
import numpy as np

# 假设dframe是你已有的原始DataFrame
dframe = pd.DataFrame({'col': range(16)})

df5 = pd.DataFrame()
df6 = pd.DataFrame()
df7 = pd.DataFrame()
df8 = pd.DataFrame()
chunk_size = 4

# 先分割原始数据得到所有块
data_chunks = np.array_split(dframe, chunk_size)
# 直接把分割结果赋值给各个df变量
df5, df6, df7, df8 = data_chunks
# 再生成列表(如果需要的话)
dfList = [df5, df6, df7, df8]

# 现在打印df5就能得到正确的分割后数据
print(df5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 01:25:21