快捷项目分配。无法使用loc进行项目分配

时间:2019-01-25 07:11:25

标签: python pandas dask

我有一个无法容纳在内存中的镶木地板文件文件夹,因此我正在使用var shift=""; for(var i=0;i<5;i++){ shift = "shift"+i; for(var j=0;j<3;j++){ } console.log(shift); } 来执行数据清理操作。我有一个要执行项目分配的功能,但似乎找不到任何在线解决方案可作为该特定功能的解决方案。以下是在熊猫中起作用的功能。如何在dask数据框中获得相同的结果?我以为延迟可能会有所帮助,但是我尝试编写的所有解决方案都没有起作用。

public function destroy(Trip $trip)
{
    $trip->delete();
    flash()->warning('Trip '.$trip->id.' successfully deleted! <a href=trips/'.$trip->id.'/restore>UNDO</a>');
    return redirect('trips');
}

public function restore(Request $request) 
{
    $trip = Trip::withTrashed()->where('id', $request['id'])->restore();
    return redirect ('trips');
}
  

dask

2 个答案:

答案 0 :(得分:2)

您可以将loc的分配替换为dask.dataframe.Series.mask

df['NewCol'] = 0
df['NewCol'] = df['NewCol'].mask(new_col == 0b010, 1)
df['NewCol'] = df['NewCol'].mask(new_col == 0b100, -1)

答案 1 :(得分:1)

在这种情况下,您可以使用map_partitions来使用原始的熊猫功能。即

ddf.map_partitions(item_assignment)

这可用于dask数据框的各个熊猫组成数据框

df = pd.DataFrame({"OtherCol":[0b010, 0b110, 0b100, 0b110, 0b100, 0b010]})
ddf = dd.from_pandas(df, npartitions=2)
ddf.map_partitions(item_assignment).compute()

我们看到预期的结果:

   OtherCol  NewCol
0         2       1
1         6       0
2         4      -1
3         6       0
4         4      -1
5         2       1