小编equ*_*ity的帖子

在Seaborn Bar Plot中关闭误差线

我在matplotlib中使用GridSpec来创建一个包含9个子图的页面.其中一个子图是使用以下代码创建的Seaborn条形图:

import seaborn as sns
sns.barplot(x=df['Time'], y=df['Volume_Count'], ax=ax7)
Run Code Online (Sandbox Code Playgroud)

有没有办法关闭条形图的垂直误差线?如果没有,是否可以减少钢筋的水平宽度?

谢谢!

python matplotlib seaborn

8
推荐指数
3
解决办法
9881
查看次数

将 CSV 上传到 Plotly Dash 并根据 Pandas 数据框渲染条形图

我是该框架的新手Plotly Dash,并尝试构建一个简单的仪表板:

  1. 允许用户上传 CSV 文件以进行图形分析。

  2. 根据步骤 #1 中上传的文件创建 Pandas 数据框。

    2a. 如果尚未选择 CSV 文件(以及生成的数据框),则不渲染任何内容。

  3. 根据上述数据框中包含的数据渲染基本条形图(或散点图、热图等)。

我的 CSV 文件中的数据类似于以下内容:

df = pd.DataFrame({'Make':['Ford', 'Ford', 'Ford', 'BMW', 'BMW', 'BMW', Mercedes', 'Mercedes', 'Mercedes'],
                          'Score':['88.6', '76.6', '100', '79.1', '86.8', '96.4', '97.3', '98.7', '98.5'],
                          'Dimension':['Speed', 'MPG', 'Styling', 'Speed', 'MPG', 'Styling', 'Speed', 'MPG', 'Styling'],
                          'Month':['Apr-19', 'Apr-19', 'Apr-19', 'Apr-19', 'Apr-19', 'Apr-19', 'Apr-19', 'Apr-19', 'Apr-19']})
Run Code Online (Sandbox Code Playgroud)

我的代码如下:

import base64
import datetime
import io
import dash
from dash.dependencies import Input, Output, State
import dash_core_components as dcc
import dash_html_components as …
Run Code Online (Sandbox Code Playgroud)

python pandas plotly plotly-dash

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

Plotly Express:如何在数据标签上添加数千个逗号分隔符

我正在使用该px.bar()函数来Plotly Express创建一些简单的条形图。

我的代码如下:

import plotly.express as px
import pandas as pd

test_df = pd.DataFrame({'Manufacturer':['Ford', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW'],
                          'Metric':['Orders', 'Orders', 'Orders', 'Orders', 'Orders', 'Orders', 'Orders', 'Sales', 'Sales', 'Sales', 'Sales', 'Sales', 'Sales', 'Warranty', 'Warranty', 'Warranty', 'Warranty', 'Warranty', 'Warranty'],
                          'Sector':['Germany', 'Germany', 'Germany', 'Germany', 'USA', 'USA', 'USA', 'Germany', 'Germany', 'Germany', 'USA', 'USA', 'USA', 'Germany', 'Germany', 'Germany', 'USA', 'USA', 'USA'],
                          'Value':[45000, 70000, 90000, 65000, 40000, 65000, …
Run Code Online (Sandbox Code Playgroud)

plotly plotly-dash plotly-python

5
推荐指数
2
解决办法
6336
查看次数

Pandas:根据一列的子字符串搜索和另一列的反向搜索创建一个新列

我想基于一列的子字符串搜索和另一列的逆搜索在 Pandas 数据框中创建一个新列。这是一些数据:

import pandas as pd
import numpy as np

df = pd.DataFrame({'Manufacturer':['ABC-001', 'ABC-002', 'ABC-003', 'ABC-004', 'DEF-123', 'DEF-124', 'DEF-125', 'ABC-987', 'ABC-986', 'ABC-985'],
                   'Color':['04-Red', 'vs Red - 07', 'Red', 'Red--321', np.nan, np.nan, np.nan, 'Blue', 'Black', 'Orange'],
                  })


    Manufacturer    Color
0   ABC-001         04-Red
1   ABC-002         vs Red - 07
2   ABC-003         Red
3   ABC-004         Red--321
4   DEF-123         NaN
5   DEF-124         NaN
6   DEF-125         NaN
7   ABC-987         Blue
8   ABC-986         Black
9   ABC-985         Orange
Run Code Online (Sandbox Code Playgroud)

我希望能够创建一个Country基于以下逻辑命名的新列:

a) 如果该Manufacturer列包含子字符串“ABC”并且该Color …

python numpy pandas

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

HTML / CSS:防止在表单中输入文本时覆盖背景颜色

我从以下 HTML/CSS 代码中看到了一些意外行为:

CSS

*{
    font-family: arial, sans-serif;
    padding: 0px;
    margin: 0px;
}

body {
    display: flex;
    align-items: column;
    flex-direction: column;
}

nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-right: 30px;
    margin-top: 15px;
}

nav a {
    font-size: 13px;
    color: rgba(0, 0, 0, .87);
    text-decoration: none;
    cursor: pointer;
    padding: 7px;
}

nav a:hover {
    text-decoration: underline;
}

.buttons {
    background-color: #f8f9fa;
    border: 1px solid #f8f9fa;
    border-radius: 4px;
    font-size: 14px;
    margin: 11px 4px;
    padding: 0 16px;
    line-height: 27px;
    height: 36px; …
Run Code Online (Sandbox Code Playgroud)

html css

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

如何使用Seaborn(或matplotlib)在x轴上绘制日期

我有一个带有一些时间序列数据的csv文件.我这样创建一个数据框:

df = pd.read_csv('C:\\Desktop\\Scripts\\TimeSeries.log')
Run Code Online (Sandbox Code Playgroud)

当我打电话时df.head(6),数据显示如下:

Company     Date                 Value
ABC         08/21/16 00:00:00    500
ABC         08/22/16 00:00:00    600
ABC         08/23/16 00:00:00    650
ABC         08/24/16 00:00:00    625
ABC         08/25/16 00:00:00    675
ABC         08/26/16 00:00:00    680
Run Code Online (Sandbox Code Playgroud)

然后,我有以下内容强制'Date'列为datetime格式:

df['Date'] = pd.to_datetime(df['Date'], errors = 'coerce')
Run Code Online (Sandbox Code Playgroud)

有趣的是,pandas.core.series.Series当我打电话给以下时,我会看到" "

type(df['Date'])
Run Code Online (Sandbox Code Playgroud)

最后,我打电话给以下人员创建一个情节:

%matplotlib qt
sns.tsplot(df['Value'])
Run Code Online (Sandbox Code Playgroud)

在从左到右的x轴上,我看到从0到数据帧中的行数的整数.如何将"日期"列添加为此图的x轴值?

谢谢!

python matplotlib timeserieschart seaborn

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

如何在 Pandas Dataframe 中过滤掉今天的日期

我有以下数据框:

Company     Date                 Value
ABC         08/21/16 00:00:00    500
ABC         08/22/16 00:00:00    600
ABC         08/23/16 00:00:00    650
ABC         08/24/16 00:00:00    625
ABC         08/25/16 00:00:00    675
ABC         08/26/16 00:00:00    680
Run Code Online (Sandbox Code Playgroud)

如果我们假设 2016 年 8 月 26 日是今天的日期,那么我想创建一个新的数据框,有效排除 08/26/16 行中的数据。

编辑: 这是我的代码:

today = time.strftime("%m/%d/%Y")
df.Date = df.Date <> today
Run Code Online (Sandbox Code Playgroud)

不幸的是,我看到一条错误消息,指出:

'Series' object has no attribute 'Date'
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

谢谢!

解决方案:

today = time.strftime("%Y-%m-%d")

df = df.loc[(df.Date < today)]
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

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

将多个图形保存到一个多页PDF文档时出错

我正在尝试将多个数字保存到一个多页PDF文档中.我的代码如下:

import matplotlib.backends.backend_pdf
pdf = matplotlib.backends.backend_pdf.PdfPages('output.pdf')

sns.set_style('darkgrid')

g = sns.factorplot(data=df,
                   x='Date',
                   y='Product_Count',
                   col='Company',
                   col_wrap=4,
                   sharey=False)
g.set_xlabels('')
g.set_ylabels('product count')
g.set_xticklabels(rotation=45)
plt.locator_params(axis = 'x', nbins = 8)

f = sns.factorplot(data=df,
                   x='Date',
                   y='Volume_Count',
                   col='Company',
                   col_wrap=4,
                   sharey=False)
f.set_xlabels('')
f.set_ylabels('volume count')
f.set_xticklabels(rotation=45)
plt.locator_params(axis = 'x', nbins = 8)

figures = [g, f]

for figure in figures:
    pdf.savefig(figure)
pdf.close()
Run Code Online (Sandbox Code Playgroud)

我看到此错误消息:

ValueError: No such figure: <seaborn.axisgrid.FacetGrid object at 0x237CD5F0>
Run Code Online (Sandbox Code Playgroud)

迭代有什么问题吗?

python matplotlib pdfpages seaborn

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

Pandas:从用于计数的数据透视表的输出中删除浮点值

我有以下(玩具)数据集:

import pandas as pd
import numpy as np

df = pd.DataFrame({'System_Key':['MER-002', 'MER-003', 'MER-004', 'MER-005', 'BAV-378', 'BAV-379', 'BAV-380', 'BAV-381', 'AUD-220', 'AUD-221', 'AUD-222', 'AUD-223'],
                   'Manufacturer':['Mercedes', 'Mercedes', 'Mercedes', 'Mercedes', 'BMW', 'BMW', 'BMW', 'BMW', 'Audi', 'Audi', 'Audi', 'Audi'],
                   'Region':['Americas', 'Europe', 'Americas', 'Asia', 'Asia', 'Europe', 'Europe', 'Europe', 'Americas', 'Asia', 'Americas', 'Americas'],
                   'Department':[np.nan, 'Sales', np.nan, 'Operations', np.nan, np.nan, 'Accounting', np.nan, 'Finance', 'Finance', 'Finance', np.nan]
                  })

    System_Key  Manufacturer    Region       Department
0   MER-002     Mercedes        Americas     NaN
1   MER-003     Mercedes        Europe       Sales
2   MER-004     Mercedes        Americas     NaN
3 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

是否可以在Seaborn Factor Plot(Python)中为*every*plot添加x轴标签?

我正在使用Seaborn制作一个因子图.

总共,我有4个'子图'(并使用col_wrap =2,所以我有2行,每行包含2个子图).只有网格底部的2个子图有x轴标签(我相信这是默认值).

是否可以配置因子图,使4个图中的每一个都有x轴标签?(我在文档或StackOverflow中找不到此选项)

更新:

这是代码(在因子网格上生成4个时间序列图):

数据框(df)如下所示:

Company     Date        Value
ABC         08/21/16    500
ABC         08/22/16    600
ABC         08/23/16    650
DEF         08/21/16    625
DEF         08/22/16    675
DEF         08/23/16    680
GHI         08/21/16    500
GHI         08/22/16    600
GHI         08/23/16    650
JKL         08/21/16    625
JKL         08/22/16    675
JKL         08/23/16    680


import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns 

df = pd.read_csv(the_file_name.csv)

g = sns.factorplot(data=df,
                   x='Date',
                   y='Value',
                   col='Company',
                   col_wrap=2,
                   sharey=False)
g.set_xlabels('')
g.set_ylabels('product count')
g.set_xticklabels(rotation=45)
plt.show()
Run Code Online (Sandbox Code Playgroud)

您会注意到x轴日期显示在底部的2个图上.我希望x轴日期也显示在前2个图上.

谢谢!

python matplotlib seaborn

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

只能将 .dt 访问器与 datetimelike 值一起使用 pandas 错误

我有一个 pandas 数据框,如下所示:

key      system      impl_date
1        madison     2021-01-27T13:16:18.000-0600
2        madison     2021-01-27T13:15:04.000-0600
3        lexington   2021-01-27T13:08:27.000-0600
4        park        2021-01-27T13:05:42.000-0600
Run Code Online (Sandbox Code Playgroud)

impl_date列包含字符串,因为在脚本的前面我应用了以下内容:

df = df.applymap(str)
Run Code Online (Sandbox Code Playgroud)

我想获取该impl_date列并去除时间元素,从而得到采用以下形式的日期:

yyyy-mm-dd
Run Code Online (Sandbox Code Playgroud)

我使用了以下内容:

df['impl_date'] = pd.to_datetime(df['impl_date']).dt.strftime('%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)

此操作失败并显示以下错误消息:

AttributeError:  Can only use .dt accessor with datetimelike values
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

df['impl_date'] = pd.to_datetime(df['impl_date'], errors='coerce').dt.strftime('%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)

此操作失败并显示相同的错误消息。

df.dtypes给出以下结果:

key         object
system      object
impl_date   object
type:  object
Run Code Online (Sandbox Code Playgroud)

type(df)给出:

pandas.core.series.Series
Run Code Online (Sandbox Code Playgroud)

并且,df.info()给出:

#  Column      Non-Null Count   Dtype
-  ------      --------------   -----
0  key         6453 non-null    object
1  system …
Run Code Online (Sandbox Code Playgroud)

python datetime date pandas

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

Plotly:如何向 Choropleth 添加数据标签

我有以下Pandas数据框df,如下所示:

import pandas as pd
df = pd.DataFrame({'state' : ['NY', 'CA', 'FL', 'NJ', 'TX', 'CT', 'MA', 'WA', 'IL', 'GA'],
                   'user_id' : [10000, 3200, 1600, 1200, 800, 600, 400, 350, 270, 260]
                        })

    state   user_id
0   NY      10000
1   CA      3200
2   FL      1600
3   NJ      1200
4   TX      800
5   CT      600
6   MA      400
7   WA      350
8   IL      270
9   GA      260
Run Code Online (Sandbox Code Playgroud)

我希望能够创建一个 Plotly choropleth,其中包含每个州的数据标签。

为此,我使用add_scattergeo

fig = px.choropleth(df,
                    locations = …
Run Code Online (Sandbox Code Playgroud)

python plotly

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

R 中的百分位数结果与 MS Excel 不匹配

我有以下玩具数据集(实际数据集约为 500,000 条记录):

library(data.table)

dt <- data.table(Address = c("Gold", "Gold", "Silver", "Silver", "Gold", "Gold", "Copper", "Gold", "Bronze"),
                 Name = c("Stat1", "Stat1", "Stat1", "Stat1", "Stat1", "Stat1", "Stat1", "Stat1", "Stat1"), 
                 AvgValue = c(0, 0.5, 1.25, 0.75, 1.5, 0.7, 0.41, 0.83, 2.58),
                 Samples = c(123, 233, 504, 3, 94, 50, 401, 402, 12))
Run Code Online (Sandbox Code Playgroud)

我想做以下事情:

a) 对数据进行子集化,以便我们只考虑“黄金”记录”“值”列中大于零的值

b) 使用上面“a”中过滤后的数据,打印出百分位数和其他描述性统计数据。

执行上面“a”和“b”的代码如下:

qs = dt[AvgValue > 0 & Address %like% 'Gold', 
        .(Samples = sum(Samples),
          '25th'    = quantile(AvgValue, probs = c(0.25)),
          '50th'    = quantile(AvgValue, probs …
Run Code Online (Sandbox Code Playgroud)

excel r subset data.table

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