使用不同的数据框熊猫道奇散景图

问题描述 投票:0回答:1

大家!所以,我从专业足球引用为CSV提取2个dataframes,并通过用StringIO的帮助熊猫运行。

我只贴头和信息正下方的一排:

data_1999 = StringIO("""Tm,W,L,W-L%,PF,PA,PD,MoV,SoS,SRS,OSRS,DSRS Indianapolis Colts,13,3,.813,423,333,90,5.6,0.5,6.1,6.6,-0.5""")

data = StringIO("""Tm,W,L,T,WL%,PF,PA,PD,MoV,SoS,SRS,OSRS,DSRS Indianapolis Colts,10,6,0,.625,433,344,89,5.6,-2.2,3.4,3.9,-0.6""")

然后解释通常使用pandas.read_csv,产生2个不同dataframes分别称为df_nfl_1999和df_nfl。

所以我试图用散景,并完成类似here,除了没有“苹果”和“梨”将成为球队是主要分组的名称。我试着只用熊猫据帧信息效仿:

p9=figure(title='Comparison 1999 x 2018',background_fill_color='#efefef',x_range=df_nfl_1999['Tm'])
p9.xaxis.axis_label = 'Team'
p9.yaxis.axis_label = 'Variable'
p9.vbar(x=dodge(df_nfl_1999['Tm'],0.0,range=p9.x_range),top=df_nfl_1999['PF'],legend='PF in 1999', width=0.3)
p9.vbar(x=dodge(df_nfl_1999['Tm'],0.25,range=p9.x_range),top=df_nfl['PF'],legend='PF in 2018', width=0.3, color='#A6CEE3')
show(p9)

而我得到的错误是:

ValueError异常:预期任一字符串,字典的元件(枚举( 'EXPR', '字段', '值', '变换'),要么(字符串,实例(变换),实例(表达式),浮动))或Float,拿到{ '场':0 华盛顿红皮

我最初的想法是由组球队名称(df_nfl [“以旧换新”]),每年分析赞成点(所以df_nfl [“PF”] 2018年和df_nfl_1999 [“PF”] 1999年)。一个简单的列偏移可以解决,但我似乎无法找到一个方法来做到这一点,除了闪避图表,它不是真正的工作(我是新手)。

顺便说一句,错误引用任命为发生在:

p9.vbar(x=dodge(df_nfl_1999['Tm'],0.0,range=p9.x_range),top=df_nfl_1999['PF'],legend='PF in 1999', width=0.3)

我可以用散点图,例如,和两个图表将共存,并在某些情况下不重复(如果数据是一样的),但我真的瞄准并排绘制它的一面。相关的主题的其他的答案通常有废弃的函数旧版本的背景虚化。

什么办法可以解决这个问题?谢谢!

编辑:

这里是。头()方法。因为它从一个不同的赛季的另外一个将返回完全相同的类别,列和行,除了明显的数据变化。

                    Tm   W   L   W-L%   PF   PA   PD  MoV  SoS  SRS  OSRS  \
0  Washington Redskins  10   6  0.625  443  377   66  4.1 -1.3  2.9   6.8   
1       Dallas Cowboys   8   8  0.500  352  276   76  4.8 -1.6  3.1  -0.3   
2      New York Giants   7   9  0.438  299  358  -59 -3.7  0.7 -3.0  -1.8   
3    Arizona Cardinals   6  10  0.375  245  382 -137 -8.6 -0.2 -8.8  -5.5   
4  Philadelphia Eagles   5  11  0.313  272  357  -85 -5.3  1.1 -4.2  -3.3   

   DSRS  
0  -3.9  
1   3.4  
2  -1.2  
3  -3.2  
4  -0.9  

和执行的价值只是x=dodge回报:

躲闪()缺少必需的1位置参数:“值”

通过添加argumento value=0.0value=0.2返回的错误是一样的原职。

python-3.x pandas bokeh
1个回答
1
投票

dodge第一个参数应该在ColumnDataSource一列一列的名字。其效果是,然后,从该列中的任何值指定的量为坐标使用时回避。

您正在试图通过一列,这是不期望的内容。很难肯定地说没有完整的代码进行测试,但你很可能希望

x=dodge('Tm', ...)

然而,你还需要实际使用明确的背景虚化ColumnDataSource并传递作为sourcevbar为您链接的例子就完成了。您可以构建一个明确的,但很多时候,你也可以只通过数据帧直接source=df,它会进行调整。

© www.soinside.com 2019 - 2024. All rights reserved.