Юлия DataFrame манипуляции: объединить содержимое datarow - PullRequest
1 голос
/ 13 марта 2019

Я пытаюсь объединить содержимое строк в DataFrame, аналогичное следующему:

DataFrame(a=["aa","ab","ac"], year=[2015,2016,2017])

a       year
aa      2015 
ab      2016 
ac      2017

Желаемым выводом будет объединение содержимого ячеек строк, преобразованных в строку

output
aa2015
ab2016
ac2017

Я обнаружил, что этот код работает в правильном направлении:

df[:c] = map((x,y) -> string(x, y), df[:a], df[:year])

Однако мой ввод может быть переменным, поскольку у меня может быть другое количество столбцов, и я хочу, чтобы все их содержимое было объединенострока за строкой.

Есть предложения о том, как этого добиться?Неважно, будет ли столбец добавлен в исходный фрейм данных, если это поможет.

Большое спасибо

1 Ответ

3 голосов
/ 14 марта 2019

Вы можете использовать eachrow для достижения этой цели:

julia> df = DataFrame(rand('a':'z', 5,5))
5×5 DataFrame
│ Row │ x1   │ x2   │ x3   │ x4   │ x5   │
│     │ Char │ Char │ Char │ Char │ Char │
├─────┼──────┼──────┼──────┼──────┼──────┤
│ 1   │ 'l'  │ 'p'  │ 'y'  │ 't'  │ 'n'  │
│ 2   │ 'p'  │ 'y'  │ 'y'  │ 'r'  │ 's'  │
│ 3   │ 'y'  │ 'a'  │ 'o'  │ 'c'  │ 'a'  │
│ 4   │ 'k'  │ 't'  │ 'q'  │ 's'  │ 'q'  │
│ 5   │ 'a'  │ 'c'  │ 'w'  │ 'f'  │ 'v'  │

julia> join.(eachrow(df))
5-element Array{String,1}:
 "lpytn"
 "pyyrs"
 "yaoca"
 "ktqsq"
 "acwfv"

(здесь я только что создал новый вектор - вы, конечно, можете добавить его к DataFrame, если хотите)

...