熊猫:不推荐使用警告:逐元素比较失败

nrcjea001

我试图按组将扩展函数应用于熊猫数据帧,但首先要过滤掉所有零以及每个组的最后一个值。下面的代码完全满足我的需要,但是有点慢:

df.update(df.loc[~df.index.isin(df.groupby('group')['value'].tail(1).index)&
            (df['value']!= 0)].iloc[::-1].groupby('group')[
            'value'].expanding().min().reset_index(level=0, drop=True))

我发现使用以下代码可以更快地完成此操作:

df.update(df.iloc[::-1].groupby('group')[
            'value'].expanding().min().reset_index(level=0, drop=True), 
             filter_func = lambda x: (x!=0)&(x[-1]==False))

但是,对于我当前正在使用的数据集,我收到警告(“ C:... \ anaconda3 \ lib \ site-packages \ ipykernel_launcher.py:22:DeprecationWarning:元素比较失败;这将在未来。”)。

奇怪的是,使用这样的小型虚拟数据集不会出错:

data = {'group':['A', 'A', 'A', 'A', 'A', 'B', 'B', 
                'B', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C'], 
                 'value':[3, 0, 8, 7, 0, -1, 0, 9, -2, 0, 0, 2, 0, 5, 0, 1]} 
df = pd.DataFrame(data)
df

  group  value
0   A      3
1   A      0
2   A      8
3   A      7
4   A      0
5   B     -1
6   B      0
7   B      9
8   B     -2
9   B      0
10  B      0
11  C      2
12  C      0
13  C      5
14  C      0
15  C      1

如果有人可以帮助我理解为什么会出现此错误以及如何避免它,将不胜感激。

耶斯列尔

我相信您的拳头代码应通过改进以DataFrame.duplicated获得更好的性能,而第二个代码对我不起作用:

m = df.duplicated('group', keep='last') & (df['value']!= 0)
s = df[m].iloc[::-1].groupby('group')['value'].expanding().min().reset_index(level=0,drop=True)
df.update(s)
#alternative, not sure if faster
#df['value'] = s.reindex(df.index, fill_value=0)
print (df)
   group  value
0      A    3.0
1      A    0.0
2      A    7.0
3      A    7.0
4      A    0.0
5      B   -2.0
6      B    0.0
7      B   -2.0
8      B   -2.0
9      B    0.0
10     B    0.0
11     C    2.0
12     C    0.0
13     C    5.0
14     C    0.0
15     C    1.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

熊猫逐元素比较并创建选择

numpy:FutureWarning:逐元素比较失败

如何使用熊猫进行逐细胞比较?

数组比较不匹配numpy中的逐元素比较

两个熊猫数据框的逐元素比较

如何在熊猫中创建逐元素比较矩阵?

Nim警告:不推荐使用,改用什么?

显示不推荐使用的同类警告

Xcode不再显示不推荐使用的警告

不推荐使用警告消息“getDefaultMiddleware”

在pytorch中追溯不推荐使用的警告

不推荐使用的命令的 SBT 警告

Lua中的逐元素比较

警告消息:如何删除不推荐使用的“withUnsafeMutableBytes”和不推荐使用的“withUnsafeBytes”?

xcode中不推荐使用的警告以及如何处理不推荐使用

警告:不推荐使用[history] pushState;使用推送代替

熊猫在两个系列之间进行逐元素比较的最佳方法

警告:不推荐使用Assert类型的assertEquals方法

Python警告:不推荐使用plotly.graph_objs.Line

如何隐藏“不推荐使用:mysql_connect()”警告?

弃用警告:不推荐使用未处理的承诺拒绝

禁止使用Java中不推荐的导入警告

R中的getSymbols不推荐使用警告消息'indexClass <-'

弃用警告:不推荐使用 Model.scoped

警告:componentWillReceiveProps 已重命名,不推荐使用

出现错误:“目标 dart2js 失败:异常:警告:不推荐使用 'dart2js' 入口点脚本,请改用 'dart compile js'”

jQuery .on函数用于将来的元素,因为不推荐使用.live

图像中的numpy逐元素比较

在熊猫中逐列减元素