Dask读取CSV,将分区设置为CSV长度

时间:2017-03-31 19:46:07

标签: python csv distributed dask

我尝试编写的代码将从一组名为my_file_*.csv的CSV中读取到Dask数据帧中。

然后我想根据CSV的长度设置分区。我试图在每个分区上映射一个函数,为此,每个分区必须是整个CSV。

我尝试重置索引,然后根据每个CSV的长度设置分区,但看起来Dask数据帧的索引不是唯一的。

是否有更好的方法根据每个CSV的长度进行分区?

1 个答案:

答案 0 :(得分:2)

那么一个分区应该只包含一个文件? 你冷吗:

Sub advancedMultipleCriteriaFilter()

 Dim cellRng As Range, tableObject As Range, subSelection As Range
 Dim filterCriteria() As String, filterFields() As Integer
 Dim i As Integer

If Selection.Rows.Count > 1 Then
 MsgBox "Cannot apply filters to multiple rows within the same column. Please make another selection and try again.", vbInformation, "Selection Error!"
 Exit Sub
 End If

Application.ScreenUpdating = False
i = 1
 ReDim filterCriteria(1 To Selection.Cells.Count) As String
 ReDim filterFields(1 To Selection.Cells.Count) As Integer
Set tableObject = Selection.CurrentRegion
 For Each subSelection In Selection.Areas
 For Each cellRng In subSelection
 filterCriteria(i) = cellRng.Text
 filterFields(i) = cellRng.Column - tableObject.Cells(1, 1).Column + 1
 i = i + 1
 Next cellRng
 Next subSelection
With tableObject
 For i = 1 To UBound(filterCriteria)
 .AutoFilter field:=filterFields(i), Criteria1:=filterCriteria(i)
 Next i
 End With
Set tableObject = Nothing
Application.ScreenUpdating = True
End Sub

Sub resetFilters()

Dim sht As Worksheet
Dim LastRow As Range

Application.ScreenUpdating = False
   On Error Resume Next
        If ActiveSheet.FilterMode Then
    ActiveSheet.ShowAllData
  End If

Range("A3:T3").ClearContents
Application.ScreenUpdating = True
Call GetLastRow

End Sub

Private Sub GetLastRow()

 'Step 1: Declare Your Variables.
  Dim LastRow As Long
 'Step 2: Capture the last used row number.
  LastRow = Cells(Rows.Count, 8).End(xlUp).Row
 'Step 3: Select the next row down
  Cells(LastRow, 8).Offset(1, 0).Select

 End Sub

将blocksize设置为None可确保文件不会分成多个分区。因此,extension Double { var positiveAngleInDegrees: Double { var x = self while x < 0 { x += 360 } while x >= 360 { x -= 360 } return x } } let y = 722.positiveAngleInDegrees // 2 将是一个dask数据帧,每个分区包含一个文件。

您可能需要查看文档: