我有两个相同单位的变量,我想在与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)
我显然不想用原始列表传递值.我不明白,我需要一些帮助.
我有两个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作为要比较的字段.
我也对任何其他有效的解决方法感兴趣!
干杯