Gostaria de obter valor de uma coluna cujo nome está em outra coluna.
Na minha tabela há muitas colunas, então fazer isso pl.when().then()
não é uma opção.
Como entrada temos este dataframe:
foo | contagem_de_foo | bar | contagem_de_barras | base | contagem_base | maior |
---|---|---|---|---|---|---|
1 | 23 | 4 | 43 | 5 | 64 | base |
2 | 45 | 6 | 45 | 1 | 43 | bar |
3 | 234 | 9 | 453 | 15 | 231 | base |
4 | 55 | 2 | 67 | 3 | 94 | foo |
e gostaria de transformar isso com with_columns()
:
foo | contagem_de_foo | bar | contagem_de_barras | base | contagem_base | maior | maior_contagem |
---|---|---|---|---|---|---|---|
1 | 23 | 4 | 43 | 5 | 64 | base | 64 |
2 | 45 | 6 | 45 | 1 | 43 | bar | 45 |
3 | 234 | 9 | 453 | 15 | 231 | base | 231 |
4 | 55 | 2 | 67 | 3 | 94 | foo | 4 |
Este (pseudo)código ilustra o que tenho em mente (mas é claro que isso não funciona)
df = pl.DataFrame({"foo" : [1, 2, 3, 4],
"foo_count" : [23, 45 ,234, 55],
"bar" : [4 ,6 ,9, 2],
"bar_count" : [43, 45 ,453, 67],
"baz": [5,1,15, 3],
"baz_count" : [64, 43 ,231, 94],
"largest" : ["baz", "bar", "baz", "foo"]})
df.with_columns(
pl.col(f"{pl.col('largest')}_count").alias("largest_count")
)