我有一个csv文件,结构为:
Location Parameter
A 10
A 20
B 14
B 16
C 15
C 9
C 6
Run Code Online (Sandbox Code Playgroud)
我可以使用read_csv轻松将其放入数据框。
我想使用python / pandas转换数据框以获取A,B,C中的每个列,并通过相应的参数填充值,例如
A B C
10 14 15
20 16 9
NA NA 6
Run Code Online (Sandbox Code Playgroud)
最终目的是在数据框上绘制箱形图。
提前致谢。
我有使用后台工作线程的 ac# 应用程序,并且非常成功地从正在运行的线程更新了 UI。该应用程序涉及网络上的最短路径路由,当后台工作人员继续进行时,我会在 UI 上显示网络和最短路径。我希望允许用户在应用程序运行时通过使用滑块来减慢显示速度。
我发现这是一个建议,但它在 vb.net 中,我不清楚如何让它在 c# 中工作。
BackgroundWorker 如何在运行时从 UI 线程获取值?
我可以将滑块的值传递给后台工作人员,如下所示:
// 启动异步操作。延迟 = this.trackBar1.Value; backgroundWorker1.RunWorkerAsync(延迟);
并在后台工作线程中使用它,但它只使用最初发送的值。当我在 UI 上移动滑块时,我不清楚如何从后台工作人员内部获取值。
我以前使用过多个线程和委托,但如果可以使用后台工作程序,我更喜欢它的简单性。
5/10/2012
感谢大家的回复。我仍然有问题,很可能是因为我如何组织事物。网络路由的繁重计算是在 TransportationDelayModel 类中完成的。BackgroundWorker_DoWork 创建此类的一个实例,然后将其启动。延迟在 TransportationDelayModel 中处理。
代码骨架如下:
在用户界面中:
private void runToolStripMenuItem1_Click(object sender, EventArgs e)
{
if (sqliteFileName.Equals("Not Set"))
{
MessageBox.Show("Database Name Not Set");
this.chooseDatabaseToolStripMenuItem_Click(sender, e);
}
if (backgroundWorker1.IsBusy != true)
{
// Start the asynchronous operation.
delay = this.trackBar1.Value;
// pass the initial value of delay
backgroundWorker1.RunWorkerAsync(delay);
// preclude multiple runs
runToolStripMenuItem1.Enabled = false; …Run Code Online (Sandbox Code Playgroud)