让DataFrame的列

2024-04-20 07:59:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道让数据框中的列显示的两种方式的区别。 代码如下:

# 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)

结果如下:

印刷品(A) print(A)

印刷品(B) print(B)

我不明白要点。请帮忙,谢谢你的回复


1条回答
网友
1楼 · 发布于 2024-04-20 07:59:26

print(B[['ftr3']])代替print(B['ftr3'])

列的体系结构不同:使用A.columnsB.columns来比较它们

A.columns将返回:Index(['ftr1', 'ftr2', 'ftr3'], dtype='object')
B.columns将返回:MultiIndex([('ftr1',),('ftr2',),('ftr3',)],)

相关问题 更多 >