Existe uma maneira de verificar se existe uma coluna em um DataFrame do Pandas?
Suponha que eu tenha o seguinte DataFrame:
>>> import pandas as pd
>>> from random import randint
>>> df = pd.DataFrame({'A': [randint(1, 9) for x in xrange(10)],
'B': [randint(1, 9)*10 for x in xrange(10)],
'C': [randint(1, 9)*100 for x in xrange(10)]})
>>> df
A B C
0 3 40 100
1 6 30 200
2 7 70 800
3 3 50 200
4 7 50 400
5 4 10 400
6 3 70 500
7 8 30 200
8 3 40 800
9 6 60 200
e eu quero calcular df['sum'] = df['A'] + df['C']
Mas primeiro quero verificar se df['A']
existe e, se não, quero calcular df['sum'] = df['B'] + df['C']
.
if not 'A' in df.columns:
executar uma operação seA
não estiver presente emdf
Para verificar se uma ou mais colunas existem, você pode usar
set.issubset
, como em:Como @brianpck aponta em um comentário, como
set([])
alternativa pode ser construído com chaves,Veja esta pergunta para uma discussão sobre a sintaxe de chaves.
Ou, você pode usar uma compreensão de lista, como em:
fonte
{'A', 'B'}.issubset()
Apenas para sugerir outra maneira sem usar as instruções if, você pode usar o
get()
método paraDataFrame
s. Para realizar a soma com base na pergunta:O
DataFrame
método get tem comportamento semelhante aos dicionários python.fonte