小编ale*_*sov的帖子

.transform('first') 是做什么的?

有人帮我要了一个代码。我理解代码中的所有内容,除了最后一行.transform('first')我看到它的作用(我可以看到它),但我想准确地知道它在后面做了什么才能获得这个结果。

这是我理解的代码部分:

df['Date'] = pd.to_datetime(df['Date'])
df['YEP'] = ( df[::-1].loc[df['Type'].eq('Budget')]
                     .groupby(df['Date'].dt.year)
                     .Value
                     .cumsum()
                     .sub(df['Value'])
                     .add(df['YTD'])
)
Run Code Online (Sandbox Code Playgroud)

这是第一部分的输出:

    Value    Type       Date    YTD     YEP
0     100  Budget 2019-01-01  101.0   974.0
1      50  Budget 2019-02-01  199.0  1022.0
2      20  Budget 2019-03-01  275.0  1078.0
3     123  Budget 2019-04-01  332.0  1012.0
4      56  Budget 2019-05-01    NaN     NaN
5      76  Budget 2019-06-01    NaN     NaN
6      98  Budget 2019-07-01    NaN     NaN
7     126  Budget 2019-08-01    NaN     NaN
8      90  Budget 2019-09-01    NaN     NaN
9      80  Budget …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

如何通过手动限制设置协调 Matplotlib 散点图中的点注释?

我正在尝试使用手动限制设置来协调 Matplotlib 散点图中的点注释,但是我收到一条错误消息,或者我遇到了设计问题。

这是我的代码:

fig, ax = plt.subplots(figsize = (20,10)) #manual limit setting
plt.axis([-2,3,-2.5,5])
plt.scatter(x, y)


for i, txt in enumerate(n):   #dot annotation   
    ax.annotate(txt, (x[i], y[i]))
Run Code Online (Sandbox Code Playgroud)

这是输出的屏幕截图(我得到的最终散点图是一个位于大白色矩形左角的小矩形:

输出

我也试过这个:

 fig, ax = plt.subplots(figsize = (20,10))
    ax = plt.axis([-2,3,-2.5,5])
    plt.scatter(x, y)


for i, txt in enumerate(n):
    ax.annotate(txt, (x[i], y[i]))
Run Code Online (Sandbox Code Playgroud)

但是当然我收到了以下错误消息(即使图表正确显示,但每个对应点旁边没有标签)。

AttributeError: 'list' object has no attribute 'annotate'
Run Code Online (Sandbox Code Playgroud)

出现错误是因为我的循环试图遍历ax = plt.axis([-2,3,-2.5,5]),这确实没有意义。

有什么解决方案可以克服这个问题?

谢谢

python matplotlib scatter-plot

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

标签 统计

python ×2

dataframe ×1

matplotlib ×1

pandas ×1

scatter-plot ×1