Как проверить, существует ли столбец в панд
есть ли способ проверить, существует ли столбец в фрейме данных Pandas?
предположим, что у меня есть следующие таблицы данных:
>>> 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
и я хочу, чтобы вычислить df['sum'] = df['A'] + df['C']
но сначала я хочу проверить, если df['A']
существует, а если нет, то я хочу вычислить .
3 ответа:
это будет работать:
if 'A' in df:
но для ясности, я бы, наверное, написать так:
if 'A' in df.columns:
чтобы проверить, если один или столбцы все существуют, вы можете использовать
set.issubset
, например:if set(['A','C']).issubset(df.columns): df['sum'] = df['A'] + df['C']
как указывает @brianpck в комментарии,
set([])
может быть также построен с фигурными скобками (доступно только в Python 2.7+):if {'A', 'C'}.issubset(df.columns):
посмотреть этот вопрос для обсуждения синтаксиса фигурных скобок.
или, вы можете использовать список понимание, как в:
if all([item in df.columns for item in ['A','C']]):