Код: Выделить всё
df_large = pl.DataFrame({'x':['h1','h2','h2','h3'],
'y':[1,2,3,4],
'ind1':['0/0','1/0','1/1','0/1'],
'ind2':['0/1','0/2','1/1','0/0'] }).lazy()
df_large.collect()
Код: Выделить всё
| x | y | ind_1 | ind_2 |
|_______|_______|_______|_________|
| "h1" | 1 | "0/0" | '0/1' |
| "h2" | 2 | "1/0" | '0/2' |
| "h2" | 3 | "1/1" | '1/1' |
| "h3" | 4 | "0/1" | '0/0' |
Код: Выделить всё
df_rep = pl.DataFrame({'x':['h1','h2','h2'],
'y':[1,2,2],
'ind':['ind1','ind1','ind2']})
df_rep
Код: Выделить всё
| x | y | indvs |
|_______|_______|_________|
| "h1" | 1 | "ind_1" |
| "h2" | 2 | "ind_1" |
| "h2" | 2 | "ind_2" |
Для этого я выполнил следующий код:
Код: Выделить всё
for row in df_rep.iter_rows():
df_large = df_large.with_columns(
pl.when(pl.col('x') == row[0],
pl.col('y') == row[1])
.then(pl.col(row[2]).str.replace_all('(.)/(.)','./.'))
.otherwise(pl.col(row[2]))
.alias(row[2])
)
df_large.collect()
Код: Выделить всё
| x | y | ind_1 | ind_2 |
|_______|_______|_______|_________|
| "h1" | 1 | "./." | '0/1' |
| "h2" | 2 | "./." | './.' |
| "h2" | 3 | "1/1" | '1/1' |
| "h3" | 4 | "0/1" | '0/0' |
Я новичок в Polars и буду очень признателен за любые отзывы. Я уже давно застрял в этом вопросе
Подробнее здесь: https://stackoverflow.com/questions/790 ... lds-segmen
Мобильная версия