我得到了非常奇怪的结果与熊猫数据帧分组操作。我想做的是按索引分组(我的索引不是唯一的),然后适当地填充空值。这在很多情况下都是可行的,但在某些情况下,我会遇到一种奇怪的行为,即返回的全部是空数据帧:
df = pd.DataFrame(columns=['sample', 'cooling_rate'],
index=['SYd', 'SYd', 'XNa', 'Xna', 'Qza_new', 'Qza_new'],
data=[['SYd', 3], ['SYd', 3], ['XNa', 3],
['XNa', 3], ['val1', 'val3'], ['val1', None]])
res = df.groupby(df.index).fillna('1')
#Empty DataFrame
#Columns: []
#Index: []
但是,如果我稍微更改数据帧,将索引项“QZa_new”重命名为“QZa_new”:
^{pr2}$结果是一个按预期正确分组、填充的数据帧。我无法理解这种行为,我也没有得到任何“错误”。在
经过更多的实验,似乎关键点肯定在我的数据帧索引行中:
index=['SYd', 'SYd', 'XNa', 'Xna', 'qza_new', 'qza_new'],
在字母表中,倒数第二的值必须比最后一个值早。换句话说
index=['SYd', 'SYd', 'XNa', 'XNa', 'a', 'b']
工作并返回填充的数据帧,但是:
index=['SYd', 'SYd', 'XNa', 'XNa', 'c', 'b']
返回空数据帧。但为什么呢?在
我怀疑我错过了一些显而易见的东西,但我不知道为什么我会看到这种行为。在
更新:
这个问题似乎是已知的:https://github.com/pandas-dev/pandas/issues/14955希望在下一个版本中得到修复。在
目前没有回答
相关问题 更多 >
编程相关推荐