小编Meg*_*ini的帖子

在ColumnDataSource上绘制图形上的多行

我有两个相同单位的变量,我想在与Bokeh相同的x轴上绘制.看起来像plot.multi_line是正确的工具,但我无法从doc找到正确的语法.我尝试了什么(从文档中收集):

# df is a pandas DataFrame with contains 3 columns x, y1, y2

source = ColumnDataSource(data=df)
plot=figure()   
plot.multi_line(['x','x'], ['y1', 'y2'],  source=source)
Run Code Online (Sandbox Code Playgroud)

或者试过:

plot.multi_line(xs=['x','x'], ys=['y1', 'y2'],  source=source)
Run Code Online (Sandbox Code Playgroud)

结果是

RuntimeError:无法提供用户定义的数据源和可迭代值到字形方法.或者:

将所有数据直接作为文字传递:

p.circe(x = a_list,y = an_array,...)

或者,将所有数据放在ColumnDataSource中并传递列名:

source = ColumnDataSource(data = dict(x = a_list,y = an_array))p.circe(x ='x',y ='x',source = source,...)

Doc给出了这个例子:

p.multi_line([[1, 3, 2], [3, 4, 6, 6]], [[2, 1, 4], [4, 7, 8, 5]],
         color=["firebrick", "navy"], alpha=[0.8, 0.3], line_width=4)
Run Code Online (Sandbox Code Playgroud)

我显然不想用原始列表传递值.我不明白,我需要一些帮助.

python bokeh

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

有效地比较两个csv与+300000记录(用awk?)

我有两个csv(A有30万行,B有1 000 000行).记录通过列ID(关系1-1)相关,但具有不同的列顺序且不按ID排序.我需要获得在A中缺少ID的70万行B.

A.csv

A.ID,A.Field01,A.Field02   
2,a,d                      
4,b,e                      
1,c,f          
Run Code Online (Sandbox Code Playgroud)

B.csv

B.Field01,B.ID,B.Field02 
g,2,f
f,4,r
h,6,k
a,1,3
Run Code Online (Sandbox Code Playgroud)

(我想选择h,6,k)

我想我可以用像sqlite这样的sgbd来解决它,但我确信它可以用更简单,更高效的东西来完成,就像awk一样.

我想调整我发现的这个命令:

awk 'ARGIND==1 {x[$0]++; next} !x[$0]' B.csv A.csv
Run Code Online (Sandbox Code Playgroud)

然而,这比较了整行,我不知道如何选择具体的A.ID和B.ID作为要比较的字段.

我也对任何其他有效的解决方法感兴趣!

干杯

csv awk

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

标签 统计

awk ×1

bokeh ×1

csv ×1

python ×1