小编cpa*_*age的帖子

Pandas DataFrame 子类的属性设置器

我试图pd.DataFrame在初始化 (grouptimestamp_col)时设置一个具有两个必需参数的子类。我想对这些参数group和运行验证timestamp_col,所以我对每个属性都有一个 setter 方法。这一切都有效,直到我尝试set_index()获得TypeError: 'NoneType' object is not iterable. 似乎没有参数被传递给我的 setter 函数 in test_set_indexand test_assignment_with_indexed_obj。如果我添加if g == None: return到我的 setter 函数中,我可以通过测试用例,但认为这不是正确的解决方案。

我应该如何为这些必需的参数实现属性验证?

下面是我的课:

import pandas as pd
import numpy as np


class HistDollarGains(pd.DataFrame):
    @property
    def _constructor(self):
        return HistDollarGains._internal_ctor

    _metadata = ["group", "timestamp_col", "_group", "_timestamp_col"]

    @classmethod
    def _internal_ctor(cls, *args, **kwargs):
        kwargs["group"] = None
        kwargs["timestamp_col"] = None
        return cls(*args, **kwargs)

    def __init__(
        self,
        data, …
Run Code Online (Sandbox Code Playgroud)

python properties subclass pandas

9
推荐指数
1
解决办法
899
查看次数

将 `--root-path /api` 添加到 FastAPI 时,React、FastAPI、nginx 不工作

nginx我已经使用React 和 FastAPI 来提供服务docker。当我运行时docker-compose up,一切都可以使用react应用程序localhost:3000和api来运行localhost:8000。例如,get请求localhost:8000/fleets/返回期望的结果。localhost:3000/api/不过,我希望能够访问 api 。

\n

当我添加--root-path /api到 FastAPI时Dockerfile,React 应用程序仍然在 加载localhost:3000,并且我能够访问 api localhost:3000/api/,但我的 React 应用程序在尝试查询 api 时收到 404 错误。当我转到 Chrome 中的“网络”选项卡时,我看到反应查询导致http://127.0.0.1:8000/api/fleets/404 错误。不过该 API 仍然可用localhoost:8000/fleets/

\n

在此输入图像描述

\n

我的反应应用程序应该在localhost:3000/api/or处查询localhost:8000吗?我该如何进行此调整?

\n

请注意,我正在使用axios,但更改axios.defaults.baseURL似乎没有产生影响。我目前的axios.defaults.baseURL = \'/\';反应是App.jsx

\n

"proxy": "http://127.0.0.1:3000"我也从我的react中删除了package.json。\n在FastAPI中,我有origins = ["http://localhost:3000", "http://127.0.0.1:8000"]处理CORS的能力。 …

nginx docker reactjs axios fastapi

5
推荐指数
1
解决办法
2318
查看次数

将 jupyter 实验室笔记本转换为脚本,无需在单元格之间添加注释和新行

如何在转换时将jupyter lab笔记本转换为*.py不添加任何空行和注释的脚本(例如# In[103]:)?我目前可以使用 进行转换jupyter nbconvert --to script 'test.ipynb',但这会在笔记本单元格之间添加空行和注释。

python jupyter-notebook

4
推荐指数
1
解决办法
952
查看次数

pandas 数据框中的前填和回填缺少组值

我有一个按组和日期时间组织的数据框以及相应的值列。您可以将价值 col 视为资产 A、B、C 等(组 col)的价值。我正在尝试计算每个日期每组的总收益/损失。在第一次进入之前,相应的值为 0。例如,下面在 12/31/2019 和 1/1/2020 0:00 之间,A 的值从 -43 到 19。因此,A 在两者之间的利润日期应为 19-(-43) = 62。

我可以通过以下方式实现这个结果:

df.groupby([time_index, group]).sum().groupby(group).diff().groupby(group).cumsum()
Run Code Online (Sandbox Code Playgroud)

但是,此代码不处理不再标记组或首次记录组之前的日期。例如,D 组的第一个条目是在 2020 年 1 月 3 日 0:00 -13 分。这意味着在2020年12月31日至2020年1月3日0:00之间,D组的损失为-13-0=-13(0是因为2020年1月3日0:00是第一个D条目)。

另外,假设某个组不再被记录(即已售出)——例如,2020年1月1日9:00之后的A组,该值应“前置”并取最后记录的A组值并填写到以后的日期。这样,A 在 1/3/2020 18:00 和 12/31/2019 之间的增益为 123 - (-43) = 166。

为了最大限度地提高上面的代码的工作效率,我希望对给定的数据帧进行回填(下图中的蓝色)和前填充(下图中的绿色)。组在首次列出之前应回填为 0。组应“前置”作为最后列出后的最后记录值。

以下是我想要实现的目标:

df a1

以下是示例数据帧和我试图通过的简单测试用例:

df.groupby([time_index, group]).sum().groupby(group).diff().groupby(group).cumsum()
Run Code Online (Sandbox Code Playgroud)

python pandas

4
推荐指数
1
解决办法
1358
查看次数

改变前 n 行而不丢弃其他行

我有以下内容data.frame。我想创建一个新列w(用于重量)。w对于每个给定日期具有 n 个最高回报的行业,应等于 1 / n;对于其余行业,应等于 0。我可以group_by(date)使用top_n(3, wt = return)来过滤顶级行业,然后mutate(w = 1/n),但是我怎样才能mutate不丢弃w= 0 的其他行业呢?

structure(list(date = structure(c(16556, 16556, 16556, 16556, 
16556, 16556, 16556, 16556, 16556, 16556, 16587, 16587, 16587, 
16587, 16587, 16587, 16587, 16587, 16587, 16587, 16617, 16617, 
16617, 16617, 16617, 16617, 16617, 16617, 16617, 16617), class = "Date"), 
    industry = c("Hlth", "Txtls", "BusEq", "Fin", "ElcEq", "Food", 
    "Beer", "Books", "Cnstr", "Carry", "Clths", "Txtls", "Fin", …
Run Code Online (Sandbox Code Playgroud)

r dplyr tibble

1
推荐指数
1
解决办法
1752
查看次数

删除 Pandas 数据框中所有只有 0 或 NA 的行

扩大对降排在熊猫的数据帧全部为零,我将如何编辑解决方案,从仅包含0和NAS的数据帧中删除所有行。

我试过:

df.loc[~(df == 0 | df.isnan()).all(axis=1))]
Run Code Online (Sandbox Code Playgroud)

但得到 ValueError: The truth value of a Series is ambiguous.

编辑

df[(~(df == 0 | df.isna())).all(axis=1)] 适用于我的数据帧之一,但不适用于以下数据:

df = pd.DataFrame({'x': {'Total': -3.637978807091713e-09}, 'y': {'Total': -3.637978807091713e-09}, 'z': {'Total': -3.637978807091713e-09}, 'a': {'Total': 0.0}, 'b': {'Total': 1387241.5974624965}, 'c': {'Total': 1387241.5974624965}})
Run Code Online (Sandbox Code Playgroud)

当我运行时df[(~(df == 0 | df.isna())).all(axis=1)],当不应该删除该行时,我得到一个空数据帧,因为存在一个不等于 0 或NA.

python pandas na

1
推荐指数
1
解决办法
230
查看次数

将编辑按钮添加到反应表,打开模式来编辑行属性,通过编辑覆盖表行

我试图向我的每一行添加一个“编辑”按钮,react-table该按钮打开一个模态表单,允许用户将编辑保存到该行的不同属性(其中一些属性可能会或可能不会显示在表中)。在模态中单击“保存”后,将向 API 发出发布请求,并react-table使用响应更新其中的行。

我试图添加一个onClick调用函数的handleEdit函数,但是传递给的所有内容handleEdit都是未定义的?如何访问行属性(甚至是未在表中显示的属性)并用新值覆盖它们?

Header: 'Action',
            accessor: 'action',
            Cell: row => (
            <div>
               <button onClick={row => handleEdit(row.original)}>Edit</button>
            </div>
            ),
Run Code Online (Sandbox Code Playgroud)
function handleEdit(row) {
    console.log(row);
    // display modal
    // say user types in modal new firstName
    // post request

    // set row.firstName = newFirstName
 
  }
Run Code Online (Sandbox Code Playgroud)

这是沙箱:https://codesandbox.io/s/elated-currying-scvxk? fontsize=14&hidenavigation=1&theme=dark

reactjs react-table

1
推荐指数
1
解决办法
9883
查看次数