どの言語でもこのテクニックは必要となりますね。備忘録として記録しておきます。

【python】

パターン1・・・最初にリストを使って、後にconcatで結合。

dflist = []
for i in range(10):
  dflist.append(pd.DataFrame( {"a": ["valueA"] , "b": ["valueB"] }) )
df = pd.concat(dflist,axis=0)

パターン2・・・最初に行なしのデータフレームを作って、appendで追加する方法

df = pd.DataFrame(columns=['A', 'B'])
for i in range(5):
    record = pd.DataFrame({"A": ["valueA"], "B": ["ValueB"]})
    df = pd.concat([df, record], axis=0)

おまけ:複数のリストからデータフレームを作る

list_a = [1,2,3]
list_b = [4,5,6]
pd.DataFrame({"A_col":list_a,"B_col":list_b})

A_colとB_colが列名のデータフレームができる。

【R】

パターン1

df = data.frame(matrix(ncol = 2, nrow = 0))
colnames(df) <- c("column1", "column2")
for(i in 1:10){
  df[i,1] <- i
  df[i,2] <- i
}

パターン2・・・列数をnで指定。

n <- 2
df <- data.frame(matrix(rep(NA, n), nrow=1))[numeric(0), ]
colnames(df) <- c("column1", "column2")
for(i in 1:5){
df [i,1] <- i
df [i,2] <- i
}

おまけ:複数のリストからデータフレームを作る

value <- c(5,6,4,6,8,2,3,1,7)
group <- c("a","a","a","b","b","b","c","c","c")
df <- tibble(value,group)

データフレームの構成リスト名が列名となる。dfは、value列とgroup列ができる。

【VBA】

Sub myfunction()
Dim Lastrow As Integer
Lastrow = Worksheets("Sheet1").Range("A1").End(xlDown).Row
Dim dataframe() As Variant
ReDim dataframe(1 To Lastrow) As Variant
For i = 1 To Lastrow
dataframe(i) = Worksheets("Sheet1").Cells(i, 1)
Next i
End Sub

Categories:

category