python - 无法从数据框获取系列(Python)
问题描述
a = np.random.standard_normal((9,4))
dg = pd.DataFrame(a)
dg.columns = [["No1", "No2", "No3", "No4"]]
dg["No1"]
大家好。我一直在使用通过 Anaconda Navigator 打开的 JupyterLab,并编写了上面的代码。前三行看起来很正常,但是对于第四行,我得到了如下错误。如果我将第四行更改为 dg[["No1"]] 那么它“工作”。但是,在这种情况下 type(dg[["No1"]]) 实际上是数据帧,而不是系列。
我有点菜鸟,我已经挠了将近两个小时的头,但仍然不明白出了什么问题。有人可以帮忙吗?谢谢!!!
TypeError Traceback (most recent call last)
<ipython-input-393-b26f43cf53bf> in <module>
----> 1 dg["No1"]
~\anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
2774 if self.columns.nlevels > 1:
2775 return self._getitem_multilevel(key)
-> 2776 return self._get_item_cache(key)
2777
2778 # Do we have a slicer (on rows)?
~\anaconda3\lib\site-packages\pandas\core\generic.py in _get_item_cache(self, item)
3584 res = cache.get(item)
3585 if res is None:
-> 3586 values = self._data.get(item)
3587 res = self._box_item_values(item, values)
3588 cache[item] = res
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in get(self, item)
966 raise ValueError("cannot label index with a null key")
967
--> 968 return self.iget(loc)
969 else:
970
~\anaconda3\lib\site-packages\pandas\core\internals\managers.py in iget(self, i)
983 Otherwise return as a ndarray
984 """
--> 985 block = self.blocks[self._blknos[i]]
986 values = block.iget(self._blklocs[i])
987
TypeError: only integer scalar arrays can be converted to a scalar index
解决方案
你可以这样做,除非你想要 multi-index :
dg.columns = ["No1", "No2", "No3", "No4"]
推荐阅读
- node.js - 如何使用nodejs通过ftp下载目录的内容?
- tensorflow - AttributeError:“模块”对象没有属性“ceil”
- python - 计算列之间的滚动变化
- javascript - setTimeout() 完成后自动关闭确认框
- python - 如何解释我的模型是否发生过拟合或欠拟合以及如何提高我的准确性?
- redux - 同时挂载多个组件会覆盖 redux 状态
- python - Django Map Widgets 绘制多边形
- ios - 使用全局变量在 ViewController 之间传递数据的缺点是什么?
- sql-server - Sql Server 收缩 temp db mdf 和 ndf
- c# - 无法在 EF Code First 上创建组合主键