[Python Fennel Bean Series] PANDAS Modifica o nome da coluna DataFrame
Ao programar em Python, às vezes é interessante usar métodos diferentes para atingir o mesmo objetivo. Isso me lembra Kong Yiji de Lu Xun. Kong Yiji pesquisou bastante sobre as quatro maneiras de escrever a palavra erva-doce para feijão de erva-doce. Não me atrevo a me comparar com Kong Yiji, então aqui coleciono alguns grãos de erva-doce Python para a diversão de todos os programadores.
Primeiro prepare uma função para gerar um DataFrame para teste. Este DataFrame possui 3 colunas denominadas a, b e c.
import pandas as pd
def get_df():
return pd.DataFrame({
'a':[1,2,3], 'b':[4,5,6], 'c':[7,8,9]})
get_df()
a | b | c | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Fennel Bean One: atributo de colunas
Um dia, o BOSS disse que os nomes das colunas do DataFrame deveriam ser alterados para letras maiúsculas. Então, simplesmente joguei uma List na propriedade columns do DataFrame e a tarefa foi concluída. Os exemplos são os seguintes:
df = get_df()
df.columns=['A','B','C']
df
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
feijão de erva-doce 2: colunas.str
Um dia, o BOSS me deu um DataFrame com 300 colunas e disse que os nomes das colunas deveriam ser alterados para letras maiúsculas. Obviamente, usar o método acima é um desperdício de vida. Então usei colunas.str. Os exemplos são os seguintes:
df = get_df()
df.columns = df.columns.str.upper()
df
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Funcho Bean Três: renomear Método 1
Um dia, o BOSS me deu um DataFrame com 300 colunas e disse que a coluna a deveria ser renomeada para A, a coluna c deveria ser renomeada para C e as demais colunas deveriam permanecer inalteradas. Então usei o método renomear. Os exemplos são os seguintes:
df = get_df()
df.rename(columns={
'a': 'A', 'c': 'C'})
A | b | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
O método rename possui um parâmetro inplace e o valor padrão é False. No exemplo acima, df não mudou.
df
a | b | c | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Se quiser alterá-lo, você precisa definir inplace como True.
df.rename(columns={
'a': 'A', 'c': 'C'}, inplace=True)
df
A | b | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Feijão de erva-doce quatro: renomear método 2
Claro, você também pode usar funções, por exemplo:
df.rename(columns=lambda x:x.upper())
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
Funcho Bean Five: renomear Método 3
O parâmetro columns não é usado aqui, por exemplo:
df.rename(str.upper, axis=1)
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |
renomear é uma coisa boa. Para uso detalhado, consulte: documentação oficial .
Então, quais são os benefícios de usar renomear? Vamos dar um exemplo:
df = get_df()
df.T.rename(columns=lambda x:x+1).T
a | b | c | |
---|---|---|---|
1 | 1 | 4 | 7 |
2 | 2 | 5 | 8 |
3 | 3 | 6 | 9 |
Feijão de erva-doce seis: remover e adicionar
Se estou me sentindo particularmente feliz, posso considerar:
df = get_df()
for k, v in {
'a': 'A','b': 'B', 'c': 'C'}.items():
df[v] = df.pop(k)
df
A | B | C | |
---|---|---|---|
0 | 1 | 4 | 7 |
1 | 2 | 5 | 8 |
2 | 3 | 6 | 9 |