Проверьте, не пропущены ли значения в столбце данных - PullRequest
0 голосов
/ 06 апреля 2019

У меня есть столбец с полными именами.Я знаю, как выполнить итерацию вниз, но я не знаю, какой синтаксис использовать, чтобы он проверял пустые значения в процессе работы.попытался "isnull ()", но это, кажется, неправильный подход.Кто-нибудь знает способ?

думал что-то вроде:

for state_name in datFrame.state_name:
    if datFrame.state_name.isnull():
        print ('no name value' + other values from row)
    else:
        print(row is good.)

df.head():
 state_name state_ab            city zip_code
0    Alabama       AL       Chickasaw    36611
1    Alabama       AL      Louisville    36048
2    Alabama       AL      Columbiana    35051
3    Alabama       AL         Satsuma    36572
4    Alabama       AL  Dauphin Island    36528


to_dict():
{'state_name': {0: 'Alabama',
  1: 'Alabama',
  2: 'Alabama',
  3: 'Alabama',
  4: 'Alabama'},
 'state_ab': {0: 'AL', 1: 'AL', 2: 'AL', 3: 'AL', 4: 'AL'},
 'city': {0: 'Chickasaw',
  1: 'Louisville',
  2: 'Columbiana',
  3: 'Satsuma',
  4: 'Dauphin Island'},
 'zip_code': {0: '36611', 1: '36048', 2: '35051', 3: '36572', 4: '36528'}}

1 Ответ

1 голос
/ 06 апреля 2019

На основании вашего описания вы можете использовать np.where, чтобы проверить, являются ли строки null или пустыми строками.

df['status'] = np.where(df['state'].eq('') | df['state'].isnull(), 'Not Good', 'Good')

(MCVE) Например, предположим, что у вас есть следующий кадр данных

    state
0   New York
1   Nevada
2   
3   None
4   New Jersey

тогда

    state       status
0   New York    Good
1   Nevada      Good
2               Not Good
3   None        Not Good
4   New Jersey  Good

Всегда стоит упомянуть, что по возможности следует избегать циклов, потому что они намного медленнее, чем маскирование

...