我不知道让数据框中的列显示的两种方式的区别。 代码如下:
# let X be any 2-d array.
A=pd.DataFrame(data=X, columns=['ftr1', 'ftr2'])
A['ftr3']=1
print(A['ftr3'])
B=pd.DataFrame(data=X, columns=[['ftr1', 'ftr2']])
B['ftr3']=1
print(B['ftr3'])
当我打印A['ftr3']以查看A的ftr3元素时,没有问题
但是当我打印B['ftr3']时,问题出现了:
TypeError: only integer scalar arrays can be converted to a scalar index
此外,我对这个结果感到困惑的原因是打印(A)和打印(B)打印的结果完全相同
A=pd.DataFrame(data=X, columns=['ftr1', 'ftr2'])
A['ftr3']=1
print(A)
B=pd.DataFrame(data=X, columns=[['ftr1', 'ftr2']])
B['ftr3']=1
print(B)
结果如下:
我不明白要点。请帮忙,谢谢你的回复
用
print(B[['ftr3']])
代替print(B['ftr3'])
列的体系结构不同:使用
A.columns
和B.columns
来比较它们A.columns
将返回:Index(['ftr1', 'ftr2', 'ftr3'], dtype='object')
B.columns
将返回:MultiIndex([('ftr1',),('ftr2',),('ftr3',)],)
相关问题 更多 >
编程相关推荐