- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑 Pandas 数据框
df = DataFrame({'somedata': [13,24,54]}, index=[1,1,2])
somedata
1 13
1 24
2 54
执行
df.ix[1, 'somedata']
将返回一个对象
1 13
1 24
Name: somedata, dtype: int64
它有一个索引:
df.ix[1, 'somedata'].index
Int64Index([1, 1], dtype='int64')
但是,执行
df.ix[2, 'somedata']
将只返回没有索引的数字 54:
df.ix[2, 'somedata'].index
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-274-3c6e4b1e6441> in <module>()
----> 1 df.ix[2, 'somedata'].index
AttributeError: 'numpy.int64' object has no attribute 'index'
我不明白这种(看似?)不一致的行为。是故意的吗?我希望从同一操作返回的对象具有相同的结构。此外,我需要围绕这个问题构建我的代码,所以我的问题是,我如何检测 ix 选择返回哪种对象?目前我正在检查返回对象的长度。我想知道是否有更优雅的方式,或者是否可以强制选择,而不是只返回数字 54,以返回类似的形式
2 54
Name: somedata, dtype: int64
抱歉,如果这是一个愚蠢的问题,我无法在任何地方找到答案。
最佳答案
如果您传递一个索引列表而不是单个索引,您可以保证您将得到一个系列。换句话说,而不是
>>> df.loc[1, 'somedata']
1 13
1 24
Name: somedata, dtype: int64
>>> df.loc[2, 'somedata']
54
你可以用
>>> df.loc[[1], 'somedata']
1 13
1 24
Name: somedata, dtype: int64
>>> df.loc[[2], 'somedata']
2 54
Name: somedata, dtype: int64
(请注意,通常使用 loc
(或 iloc
)比使用 ix
更好,因为它不那么神奇,尽管是什么导致了您的问题。)
关于python - ix 选择与重复索引的不一致行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130538/
有多个关于堆栈溢出的问题比较 loc、iloc 和 ix,例如 this one ,以及多个谈论速度差异的问题,例如 this one 。似乎一致认为 .ix 更快,但它是 deprecated .
显然不可能转换 WhereEnumerableIterator至 IEnumerable public interface IX public class X1 : IX public class X
为什么下面会导致编译错误? interface IX {} interface IY {} class XY : IX, IY {} void Foo() where T : IX, IY {
例如, import pandas as pd import numpy as np df1 = pd.DataFrame({'frames':np.arange(3), 'r':np.repeat(
在 C# 中,如果 A 实现 IX 并且 B 继承自 A ,是否必然遵循 B 实现 IX?如果是,是因为 LSP 吗?之间有什么区别吗: 1. Interface IX; Class A : IX;
考虑 Pandas 数据框 df = DataFrame({'somedata': [13,24,54]}, index=[1,1,2]) somedata 1 13 1 24 2
在pandas iloc vs ix vs loc explanation, how are they different? ,它提到:ix 通常会尝试表现得像 loc 但如果标签不在索引中,则回落到
一开始自学Python的numpy、pandas时候,索引和切片把我都给弄晕了,特别是numpy的切片索引、布尔索引和花式索引,简直就是大乱斗。但是最近由于版本的问题,从之前的Python2.7改用
抱歉,标题措辞不好,但我什至不知道如何正确提问。 我该如何转动它? instPublicIP :: Instance -> Maybe Text instPublicIP inst = inst
我想运行一段代码来检查其中发生了什么,但我无法执行它,有一条消息说 .ix 已弃用。 离群值 = 4 #离群值 for k in np.arange(0,3,1): wAvg = sum(df
Python 版本:2.7.6 NumPy 版本:1.10.2 Pandas :0.17.1 我知道 .ix 现在已被弃用,但我在遗留系统上工作并看到 .ix 的这种行为,我很困惑 # Native
因此,我尝试使用此处“删除不符合所需条件的行”下的方法,仅在我的数据框中包含 B 列值小于 C 列值的行:https://www.quora.com/How-should-I-delete-rows-
我有一个 pandas 数据框形式的 csv 文件,具有以下索引 Time stamp SOG Altitude 2015-03-11T08:49:53.00
我想知道是否有一种方法可以使 .ix 具有多个条件。更具体地说,我想做的是改变这一点: In [66]: df_test Out[66]: A B C
有人可以向我解释这种行为吗? import pandas as pd dates = pd.date_range('1/1/2000', periods=8) df = pd.DataFrame(np
鉴于 pandas 0.20.0 和 deprecation of .ix 的更新,我想知道使用剩余的 .loc 和 .iloc 获得相同结果的最有效方法是什么。我刚刚回答了this question
我在开发一些加载一组用户指定的共享对象的软件。我想向我们的“加载器”组件添加一些代码,该组件可以查询每个指定的共享对象并找出用于构建/链接该共享对象的编译器和编译器版本。 在过去,我已经能够使用“st
我只知道一个有效,另一个无效。 上下文: 我有一个数据结构F其中包含 Data.Map.Map k S到另一个数据结构 S .我的目标是建立一个 Lens给出 F和 k将描述 S 中的一个字段. 困难
假设我有一些相当简单的数据类型 Person有几个字段和一个包含 Person 集合的类型s。 data Person = Person { _name :: String, _age :: Int
我有两个 session 这样做。 Session 1>start transaction; Session 1>select * from account for update; Session 2
我是一名优秀的程序员,十分优秀!