小编ves*_*and的帖子

熊猫枢纽分析表

我正在尝试使用seaborn生成热图,但是我的数据格式存在一个小问题。

目前,我的数据格式为:

Name     Diag   Date
A        1       2006-12-01
A        1       1994-02-12
A        2       2001-07-23
B        2       1999-09-12
B        1       2016-10-12
C        3       2010-01-20
C        2       1998-08-20
Run Code Online (Sandbox Code Playgroud)

我想创建一个热图(最好在python中)显示Name在一个轴上Diag-如果发生。我尝试使用旋转数据表pd.pivot,但是出现了错误

ValueError:索引包含重复的条目,无法重塑

来自:

piv = df.pivot_table(index ='Name',columns ='Diag')

时间无关紧要,但是我想展示哪个Names具有哪个Diag,哪个Diag组合聚集在一起。我是否需要为此创建一个新表?在某些情况下,Name并非与所有Diag

编辑:我从此尝试过:piv = df.pivot_table(index ='Name',columns ='Diag',values ='Time',aggfunc ='mean')

但是,由于时间采用日期时间格式,因此我最终得到:
pandas.core.base.DataError:没有要聚合的数字类型

python pandas seaborn

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

如何更改 matplotlib 中的对数刻度刻度标签

我正在尝试更改 matplotlib 中对数图的刻度标签,通常通过手动设置标签可以正常工作。然而,经常会出现如下所示的问题,手动移动标签似乎保留了一些旧标签。知道如何解决这个问题吗?

import matplotlib.pyplot as plt
%matplotlib inline

fig, ax = plt.subplots()
x = [1, 10]
y = [0, 1]
ax.plot(x, y)
ax.set_xscale('log')
ax.set_xlim(0, 10)

ax.set_xticks([2.5, 7.5])
Run Code Online (Sandbox Code Playgroud)

另外,我最近升级到 matplotlib 2.0.2,但我不记得以前见过这种行为。

在此输入图像描述

python matplotlib

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

是否可以从pandas库中读取源代码并在我自己的函数中使用它?

背景:

我想在给定行长度的元素中切片pandas数据帧,并对它们执行计算.

pandas.DataFrame.rolling将允许我这样做,但似乎只有内置函数,如sum()示例中所示df.rolling(2, win_type='triang').sum().我还想绘制这些子集(我可以通过切片和一些For循环来做到这一点,但它有点慢).

我发现了什么:

如何获取Python函数的源代码?我已经知道我可以阅读使用的源代码,pandas.DataFrame.rolling??这将给我这个:

在此输入图像描述

但是试图从这里深入挖掘使用例如rolling??似乎是徒劳的:

在此输入图像描述

那么,是否有可能以pandas.DataFrame.rolling某种方式引用底层函数,或者这是使用Python结束的?我想是的,因为文档声明大熊猫是用Cython或C编写的,但我真的好奇这个,所以我也想在这里问一下这个问题.

谢谢你的任何建议!

python pandas

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

Plotly:如何在多行上绘制分组结果?

我正在尝试根据“Plotly”中的类别和日期的 ID 计数创建多个折线图 我的日期包含三列“日期”、“类别”、“ID”

我现在使用此代码绘制了一条线

b=mdata.groupby(['Date']).count()['ID ']
b=b.sort_index(ascending=True)


xScale = b.index
yScale = b.values
trace =go.Scatter(
    x = xScale,
    y = yScale,
    marker=dict(
        color='Red')

)
data2 = [trace]
graphJSON2 = json.dumps(data2, cls=plotly.utils.PlotlyJSONEncoder)
Run Code Online (Sandbox Code Playgroud)

输出图表应该在 X 轴上有日期,在 Y 轴上有 ID 计数和基于类别的多条线

python pandas d3.js plotly

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

Plotly:如何使用 group by 创建条形图?

我有一个数据集如下:

import pandas as pd
data = dict(Pclass=[1,1,2,2,3,3],
            Survived = [0,1,0,1,0,1],
            CategorySize = [80,136,97,87,372,119] )
Run Code Online (Sandbox Code Playgroud)

我需要在pythonbarchart中创建一个using ,它按Pclass分组。在每组中,我有 2 列和,在 Y 轴上我应该有. 因此,我必须有 6 个条,分为 3 组。plotlySurvived=0Survived=1CategorySize

这是我尝试过的:

import plotly.offline as pyo
import plotly.graph_objects as go

data = [ go.Bar( x = PclassSurvived.Pclass, y = PclassSurvived.CategorySize ) ]
layout = go.Layout(title= 'Pclass-Survived', xaxis = dict(title = 'Pclass'), yaxis = dict(title = 'CategorySize'),barmode='group' )
fig = go.Figure(data = data, layout = layout)

pyo.plot( …
Run Code Online (Sandbox Code Playgroud)

python bar-chart plotly

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

基于国家频率计数的彩色地图

我有带有 Country 列的用户数据集,并且想要绘制用户在各个国家/地区的分布图。我将数据集转换为字典,其中键是国家/地区名称,值是国家/地区的频率计数。字典是这样的:

'usa': 139421,
'canada': 21601, 
'united kingdom': 18314,
'germany': 17024,
'spain': 13096,
 [...]
Run Code Online (Sandbox Code Playgroud)

为了在世界地图上绘制分布,我使用了以下代码:

#Convert to dictionary
counts = users['Country'].value_counts().to_dict()

#Country names
def getList(dict): 
    return [*dict]

countrs = getList(counts)

#Frequency counts
freqs = list(counts.values())

#Plotting
data = dict(
        type = 'choropleth',
        colorscale = 'Viridis',
        reversescale = True,
        locations = countrs,
        locationmode = "country names",
        z = freqs,
        text = users['Country'],
        colorbar = {'title' : 'Number of Users'},
      ) 

layout = dict(title = 'Number of Users per Country',
                geo …
Run Code Online (Sandbox Code Playgroud)

python plotly choropleth

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

如何一次性执行列表插入和弹出?

像这样的清单

lst1 = [2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我想轻松地插入一个新的号码1index [0],并在同一时间下降了5,在index [-1]让我结束了:

[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

这可以使用:

lst1.insert(0,1)
lst1.pop()
print(lst1)

# output
# [1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

但是我对这样一个事实感到有些困惑,因为似乎不存在直接执行此操作的内置方法。我发现最接近解决方案的是分配1给它自己的列表,然后用这样的索引扩展它lst1

lst0=[1]
lst0.extend(lst1[:-1])

print(lst0)

# output:
[1, 2, 3, 4]
Run Code Online (Sandbox Code Playgroud)

但不知何故,这感觉有点落后,而且它肯定不是单行的。有没有更pythonic的方法来做到这一点?


对于比我拥有更基础 Python 知识的人来说,这可能是显而易见的,而且它本身甚至不能证明一个问题的合理性。但我对这些事情越来越好奇,想知道这是否可能。如果不是,那为什么呢?

python list

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

无国界的情节 choropleth

我在 Python 中使用 plotly 创建由一些分类变量着色的美国县的等值线图。由于县太小,因此图像之间的边界线占主导地位。我怎样才能摆脱它们(或将它们的宽度设置为零)?

到目前为止的代码和输出(使用随机数据):

情节:https : //i.stack.imgur.com/G3ltp.png

from urllib.request import urlopen
import json
import numpy as np
import plotly.express as px
import pandas as pd

#Read county geography
with urlopen('https://raw.githubusercontent.com/plotly/datasets/master/geojson-counties-fips.json') as response:
    buf = response.read()
    counties = json.loads(buf.decode('utf-8'))

#Create random data
df = pd.DataFrame(np.random.randn(99999, 1),columns=["val"])
df['category']=df['val']>1
df['fips'] = list(range(1,100000))

#Graph
fig = px.choropleth(df, geojson=counties, locations='fips', color='category',
scope="usa")
fig.show()

Run Code Online (Sandbox Code Playgroud)

python plotly

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

Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?

def update_graph_bar(named_count,**kwargs):

traces = list()
df = pd.DataFrame(list(Message.objects.all().values()))
available_indicators = list(df['content'].unique())
for t in available_indicators:
    traces.append(go.Bar(
        x=[t],
        y=[df[df['content']==t]['timestamp'].count()],
        name='{}'.format(t),text=[df[df['content']==t]['timestamp'].count()],
        textposition='auto'
        ))
layout = plotly.graph_objs.Layout(barmode='group',paper_bgcolor='#00FFFF',
    plot_bgcolor='rgba(0,0,0,0)',)
return {'data': traces,
      'layout': layout}
Run Code Online (Sandbox Code Playgroud)

我有上面的代码,在这里我想使用“标记”引入颜色编码,这样条形图的颜色应该取决于它的值。随着值的增加,颜色也会改变。

python plotly

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

Plotly:如何生成并排 px.sunburst 图?

我使用以下 Python 代码来生成旭日图:-

import plotly
import plotly.express as px
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv('CellUsageStats.csv',dtype={'Population':int},keep_default_na=False)
print(df.head(50))
fig = px.sunburst(df, path=['LibPrefix', 'MasterPrefixAbrHead', 'MasterPrefixAbrTail', 'Drive'], values='Population', color='Population', color_continuous_scale=px.colors.sequential.Inferno)
fig.update_traces(hovertemplate='Pattern: %{currentPath}%{label}<br>Matches: %{value}<br>Percent of <b>%{parent}</b>: %{percentParent:0.2%f}<br>Percent of <b>%{entry}</b>: %{percentEntry:0.2%f}<br>Percent of <b>%{root}</b>: %{percentRoot:0.2%f}')
fig.show()
plotly.offline.plot(fig, filename='sunburst.html')
Run Code Online (Sandbox Code Playgroud)

我有第二个 csv 文件,使用上面相同的代码来生成另一个旭日。如何将它们组合起来在同一个 html 输出中创建并排绘图?我发现...

https://plotly.com/python/sunburst-charts/

但是,我确实需要 px.sunburst 属性,并且上面链接中的示例使用 go.Sunburst,而不是 px.sunburst。是否有一种直接的方法可以从两组不同的数据生成并排图?

谢谢!

python pandas plotly

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

标签 统计

python ×10

plotly ×6

pandas ×4

bar-chart ×1

choropleth ×1

d3.js ×1

list ×1

matplotlib ×1

seaborn ×1