我遇到了一个看似简单的问题:在pandas数据帧中删除唯一的行.基本上,相反drop_duplicates().
让我们说这是我的数据:
A B C
0 foo 0 A
1 foo 1 A
2 foo 1 B
3 bar 1 A
Run Code Online (Sandbox Code Playgroud)
当A和B是唯一的时候我想删除行,即我只想保留第1行和第2行.
我尝试了以下方法:
# Load Dataframe
df = pd.DataFrame({"A":["foo", "foo", "foo", "bar"], "B":[0,1,1,1], "C":["A","A","B","A"]})
uniques = df[['A', 'B']].drop_duplicates()
duplicates = df[~df.index.isin(uniques.index)]
Run Code Online (Sandbox Code Playgroud)
但我只得到第2行,因为0,1和3都是唯一的!
我试图通过 plotly 在 python 中绘制两个不同的图表。我有两个图,一个图由合并图(折线图和条形图)组成,如下所示,
另一个是条形图,如下所示,
我想用这两个组合图表显示一个图表并显示相同的图表。我已经试过这plotly通过make_subplots但我不能够正确地达到的结果。下面是创建这两个图表的代码,
Line_Bar_chart 代码:
import plotly.graph_objects as go
from plotly.offline import iplot
trace1 = go.Scatter(
mode='lines+markers',
x = df['Days'],
y = df['Perc_Cases'],
name="Percentage Cases",
marker_color='crimson'
)
trace2 = go.Bar(
x = df['Days'],
y = df['Count_Cases'],
name="Absolute_cases",
yaxis='y2',
marker_color ='green',
marker_line_width=1.5,
marker_line_color='rgb(8,48,107)',
opacity=0.5
)
data = [trace1, trace2]
layout = go.Layout(
title_text='States_Name',
yaxis=dict(
range = [0, 100],
side = 'right'
),
yaxis2=dict(
overlaying='y',
anchor='y3',
)
)
fig = go.Figure(data=data, layout=layout) …Run Code Online (Sandbox Code Playgroud) 使用包含一些缺失值的列表,例如:
[10, 11, 12,np.nan, 14, np.nan, 16, 17, np.nan, 19, np.nan]
Run Code Online (Sandbox Code Playgroud)
如何对位于两个缺失 ( nan) 值之间的值进行子集化?
我知道如何使用for loop:
# imports
import numpy as np
# input
lst=[10,11,12,np.nan, 14, np.nan, 16, 17, np.nan, 19, np.nan]
# define an empty list and build on that in a For Loop
subset=[]
for i, elem in enumerate(lst):
if np.isnan(lst[i-1]) and np.isnan(lst[i+1]):
subset.extend([elem])
print(subset)
# output
# [14, 19]
Run Code Online (Sandbox Code Playgroud)
关于如何以不那么麻烦的方式做到这一点的任何建议?
问题:
color=<group>使用plotly express,您可以对数据进行分组并使用in分配不同的颜色px.box()。但是你怎么能用plotly.graph_objectsand来做同样的事情呢?go.box()
一些细节:
Plotly Express 很好,但有时我们需要的不仅仅是基础知识。因此,我尝试使用 Plotly Go 来代替,但随后我无法弄清楚如何在组中使用方框来绘制方框图,而无需go.Box 像文档中那样手动为每个组添加 a 。
以下是我从 Plotly Express 文档中获取的代码:
import plotly.express as px
df = px.data.tips()
fig = px.box(df, x="time", y="total_bill", color="smoker",
notched=True, # used notched shape
title="Box plot of total bill",
hover_data=["day"] # add day column to hover data
)
fig.show()
Run Code Online (Sandbox Code Playgroud)
如何在 Plotly Go 中实现同样的目标?因为该color财产不被认为是有效的。
import plotly.graph_objects as go
df = px.data.tips()
fig = go.Figure(go.Box(
x=df.time,
y=df.total_bill,
color="smoker",
notched=True, # used notched …Run Code Online (Sandbox Code Playgroud) Plotly Express 有一种直观的方式,可以用最少的代码行提供预先格式化的绘图;有点像 Seaborn 如何为 matplotlib 做到这一点。
可以在 Plotly 上添加图迹以在现有线图上获得散点图。但是,我在 Plotly Express 中找不到这样的功能。
是否可以在 Plotly Express 中组合散点图和折线图?
我正在为大学课程创建仪表板。我创建了 3 个直方图,但是,有许多独特的值给出了很长的 x 值范围。在我的图中,我只想显示计数最高的 10 个或 20 个值(前 10 个值)。有人可以帮我吗?
import plotly.express as px
from jupyter_dash import JupyterDash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
# Build App
app = JupyterDash(__name__)
app.layout = html.Div([
html.H1("forensics "),
dcc.Graph(id='graph'),
dcc.Graph(id='graph1'),
dcc.Graph(id='graph2'),
html.Label([
"select market",
dcc.Dropdown(
id='market', clearable=False,
value='whitehousemarket', options=[
{'label': c, 'value': c}
for c in posts['marketextract'].unique()
])
]),
])
# Define callback to update graph
@app.callback(
Output('graph', 'figure'),
Output('graph1', 'figure'),
Output('graph2', 'figure'),
[Input("market", "value")] …Run Code Online (Sandbox Code Playgroud) 我在youtube上看到了一个视频,它描述了如何使用Microsoft 的AdventureWorks数据库在Power BI中轻松映射数据库模式.现在我正在尝试使用另一个数据库复制该示例.问题是我的许多列都有类似的内容,但不同的列名称带有前缀,例如pk_或fk_取决于它们所在的表.这会导致以下查询失败:
SELECT
c.TABLE_NAME
,c.COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS c
INNER JOIN
(SELECT
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY COLUMN_NAME
HAVING COUNT(*) > 1
) dupes
ON dupes.COLUMN_NAME = c.COLUMN_NAME
Run Code Online (Sandbox Code Playgroud)
有谁知道是否可以模糊匹配列名或考虑不同的前缀来使这项工作?直接向youtube OP询问了同样的问题.它也可以在reddit.com上找到,但问题仍然没有答案.
我试图围绕一些更高级的Power BI功能,同时学习一些急需的SQL,我认为这将是一个很酷的起点,所以任何帮助都非常感谢!
问题:
重新安装Anaconda之后,我将无法再使用命令窗口导航到一个文件夹,在该窗口中我有一些.pynb文件,键入文件jupyter notebook并启动并运行。我收到这些错误:
C:\ scripts \ notebooks> jupyter笔记本Traceback(最近一次通话最近):文件“ C:\ Users \ MYUSERID \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ notebook \ services \ sessions \ sessionmanager.py” ,从sqlite3.dbapi2 import导入sqlite3文件“ C:\ Users \ MYUSERID \ AppData \ Local \ Continuum \ anaconda3 \ lib \ sqlite3__init __。py”的第10行,导入*文件“ C:\ Users \ MYUSERID \ AppData \ Local \ Continuum \ anaconda3 \ lib \ sqlite3 \ dbapi2.py”,第27行,来自_sqlite3 import * ImportError:DLL加载失败:找不到Procedyre
在处理上述异常期间,发生了另一个异常:
回溯(最近一次通话):文件“ …
我用下面的代码制作了一个折线图,我试图在 y=1 处添加一条水平线。我尝试按照 plotly 站点上的说明进行操作,但仍未显示。有谁知道为什么?
date = can_tot_df.date
growth_factor = can_tot_df.growth_factor
trace0 = go.Scatter(
x=date,
y=growth_factor,
mode = 'lines',
name = 'growth_factor'
)
fig = go.Figure()
fig.add_shape(
type='line',
x0=date.min(),
y0=1,
x1=date.max(),
y1=1,
line=dict(
color='Red',
)
)
data = [trace0]
iplot(data)
Run Code Online (Sandbox Code Playgroud)