Как добавить новый столбец в al oop? - PullRequest
0 голосов
/ 05 февраля 2020

Я хочу добавить столбец в моем фрейме данных. Этот столбец представляет количество столбцов в строке со значениями, не указанными в качестве нан.

Я сделал это:

for i_diagn in range(0,len(df_diagnassoc)): 
    df_diagnassoc['nr_diagnassoc'][i_diagn] = df_diagnassoc.shape[1] - df_diagnassoc.iloc[i_diagn].isnull().sum() 

Однако он не распознает df_diagnassoc ['nr_diagnasso c' ], так как он не существует. Тем не менее, я хочу, чтобы он создал это в этом l oop.

Тогда я подумал по-другому, и сделал это без al oop:

df_diagnassoc['nr_diagnassoc'] = df_diagnassoc.shape[1] - df_diagnassoc.isnull().sum(axis = 1)

Это работает, однако это показывает предупреждение:

A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  """Entry point for launching an IPython kernel.

Любой совет, пожалуйста? Заранее спасибо!

1 Ответ

0 голосов
/ 05 февраля 2020

Я не могу попробовать без данных, но я думаю, что это лучший способ добавить столбец с количеством ненулевых значений в строке:

df_diagnassoc['nr_diagnassoc'] = df_diagnassoc.apply(lambda x: x.count(), axis=1)

apply используется в кадре данных с axis=1 проходит по строкам, а count() возвращает количество ненулевых значений в этой строке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...