访问Pandas DataFrame df 中的数据时出错:
ipdb> df.loc[1988, 'ATTEND']
*** ValueError: Length mismatch: Expected axis has 0 elements, new values have 1481 elements
1988和' ATTEND'都在 df :
ipdb> 1988 in df.index
True
ipdb> 'ATTEND' in df.columns
True
我不知道这个错误是什么。有什么想法吗?
提前致谢。
示例:
ipdb> df.iloc[21875:21880, 277:280]
FUND ATTEND MAATTEND
1988 3 1 4
1988 2 3 0
1988 2 2 2
1988 2 2 7
1988 2 3 2
ipdb> df.loc[1988, 'ATTEND']
*** ValueError: Length mismatch: Expected axis has 0 elements, new values have 1481 elements
GSSFilename = 'GSS Dataset/GSS7212_R2_copy.sav'
data = srw.SavReader(pathToData + GSSFilename)
df = pd.DataFrame(data.all(), index=data[:,0], columns=ALL_VARIABLE_NAMES)
with data:
data = np.array(data.all())
更新: 我认为这个问题是由两个不同的Python实例访问同一个.sav文件引起的。
答案 0 :(得分:3)
我认为这个问题是由两个不同的Python实例访问同一个.sav文件引起的。
答案 1 :(得分:2)
在我的例子中,我用来填充 DataFrame 的查询返回 0 行,因为数据库表是空的。一旦表格被填充,错误就消失了。