python - 试图在我的熊猫扩展中“就地”工作
问题描述
我编写了以下课程以从我的 pandas 数据框中删除趋势。
import pandas as pd
@pd.api.extensions.register_dataframe_accessor("detrend")
class detrend:
def __init__(self, pandas_obj):
self._obj = pandas_obj
def percent(self, inplace=False):
change_m = self._obj.copy()
for name in change_m.columns:
col = self._obj[name]
change = (col[col.first_valid_index()] /
col[col.last_valid_index()])**(1 / (col.count() - 1))
change_m[name] = change
change_m[name] = change_m[name].cumprod()
result = change_m * self._obj
if (inplace == True):
self._obj = result
return(result)
该方法工作正常并返回正确的数据帧。唯一让我困惑的部分是:
if (inplace == True):
self._obj = result
当我通过 inplace=True 时,更改不会保存到原始数据框中。我究竟做错了什么?我应该如何在我的方法中就地工作?
解决方案
推荐阅读
- python - 如何在熊猫数据框中提取单个单词(不是包含它的更大单词)?
- kubernetes - 无法从 GKE 连接到 www.googleapis.com
- voip - 从包含 RFC 2833 RTP 事件的 RTP 流中保存音频
- c# - 如何使用 google api v3 将文件上传到(共享驱动器)?
- javascript - 如何将 AJAX 表单提交合并到 Bouncer.js 中?
- java - 关于使用连接表字段作为谓词条件的持久性问题
- java - 如何使用 Firestore 将数据添加到文档中的哈希映射数组?
- javascript - mailto 客户端在移动设备中不起作用并阻止弹出窗口
- c++ - 头文件中的内联 lambda
- python - 如何删除数据框中所有出现的字符?