小编CHR*_*HRD的帖子

Jupyter Notebook 中的 Python 相对导入

假设我有以下结构:

\n\n
 dir_1\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 functions.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dir_2\n     \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 code.ipynb\n
Run Code Online (Sandbox Code Playgroud)\n\n

在,,code.ipynb我只是想访问里面的一个函数functions.py并尝试了这个:

\n\n
from ..functions import some_function\n
Run Code Online (Sandbox Code Playgroud)\n\n

我收到错误:

\n\n
attempted relative import with no known parent package\n
Run Code Online (Sandbox Code Playgroud)\n\n

我已经检查了一堆类似的帖子,但还没有弄清楚这一点...我正在从 a 运行 jupyter 笔记本,conda env我的 python 版本是3.7.6.

\n

python relative-import anaconda jupyter-notebook

13
推荐指数
2
解决办法
7741
查看次数

Plotly dash 在重新加载时刷新全局数据

想象一下,我有一个dash应用程序,我希望在页面重新加载时刷新全局数据。我正在使用一个函数来提供此处所述的布局。但是,我注意到应该如何/在哪里定义df,以便可以在回调中使用它(就像我想根据df某些输入对它进行子集化并将其传递到布局表的情况)。我下面的代码在页面刷新时重新加载数据,但回调无法访问df.

我很陌生,dash所以提前为可能愚蠢的问题道歉。

def serve_layout():
    df = # Fetch data from DB
    
    return # Layout

app.layout = serve_layout

@app.callback()
def my_func:
    # Here I want to reference df
Run Code Online (Sandbox Code Playgroud)

python pandas plotly-dash

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

Matplotlib 并排条形图

我正在尝试使用 matplotlib 绘制以下数据框:

df = pd.DataFrame({'X': ["A", "A", "B", "B"], 'Z': ["a", "b", "a", "b"], 'Y': [5, 1, 10, 5]})
df

    X   Z   Y
0   A   a   5
1   A   b   1
2   B   a   10
3   B   b   5
Run Code Online (Sandbox Code Playgroud)

我想要的是两个条形图,其中条形图彼此相邻而不是彼此重叠。当我运行这个时,条形图被放置在彼此的顶部:

plt.barh(df['X'][df['Z'] == "a"], df['Y'][df['Z'] == "a"], color = 'blue')
plt.barh(df['X'][df['Z'] == "b"], df['Y'][df['Z'] == "b"], color = 'red')
Run Code Online (Sandbox Code Playgroud)

当我尝试更改条形的位置时,出现错误:can only concatenate str (not "float") to str。我该如何解决这个问题?

python matplotlib pandas

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

用字典键匹配熊猫子字符串并用字典值替换

假设我有dfd以下。我想,对于 中的每一行col,检查是否与 中的项目键匹配,如果匹配d,则将值替换col为相应的项目值,否则删除该行。(不能超过一场比赛)。

df = pd.DataFrame({'col': ['sdffzdhellojkh', 'fegky', 'ouewfzdworldqf']})

d = {'fzdhello': 'hello', 'fzdworld': 'world'}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,输出将如下所示:

df
    col
0   hello
1   world
Run Code Online (Sandbox Code Playgroud)

python dictionary match dataframe pandas

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

以 R 中的元素数量为条件删除列表

我有一个L未命名的逗号分隔字符列表。每个字符列表的长度不等。我需要删除少于 4 个元素的字符列表L。如何才能做到这一点?示例L

> L
[[1]]
[1] "A" "B" "C" "D"
[[2]]
[1] "E" "F" "G" 
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我想最终得到:

> L
[[1]]
[1] "A" "B" "C" "D"
Run Code Online (Sandbox Code Playgroud)

conditional r list character lapply

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

使用python根据日期条件删除行

我有一个数据框,其中包含一个日期和一个 ID 列。以下是仅用于此问题的示例框架。但真实数据包括更多的行和列。

from datetime import date, timedelta
import pandas as pd

date = datetime.datetime(2020, 1, 1)
delta_1 = 5
delta_2 = 15
delta_3 = 18

data = {
    'A': [date, date - timedelta(delta_1), date - timedelta(delta_2), date, date - timedelta(delta_3)], 
    'B': ['a', 'a', 'a', 'b', 'b']
}
df = pd.DataFrame(data)
print(df)

           A  B
0 2020-01-01  a
1 2019-12-27  a
2 2019-12-17  a
3 2020-01-01  b
4 2019-12-14  b
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,对于每个唯一 id(B示例中的列),从最近的行开始,并根据日期条件删除行:如果在 10 天内插入具有现有 id 的行具有该 ID 的最近行,只有最新行有效。所以在这个例子中,以 10 …

python dataframe pandas

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

pandas groupby 中的条件分配

假设我有df以下内容:

df = pd.DataFrame({
    'ID': ['a', 'b', 'b', 'c', 'c', 'c', 'd', 'd', 'd', 'd'],
    'V': np.array(range(0,10))
})
Run Code Online (Sandbox Code Playgroud)

我想要groupby变量ID并将值分配给新列,X具体取决于(1)每个组的大小以及每行是否是顶部(T)、“中间”(更像是顶部和底部之间)(M)或底部(B)排。如果一组中只有一行,则分配的值为N。在这种情况下,结果将如下所示:

    ID  V   X
0   a   0   N
1   b   1   T
2   b   2   B
3   c   3   T
4   c   4   M
5   c   5   B
6   d   6   T
7   d   7   M
8   d   8   M
9   d   9   B
Run Code Online (Sandbox Code Playgroud)

我可以使用类似的方法(对于这种情况)逐步执行此操作T …

python group-by dataframe pandas

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