Копировать строку в Pandas при выполнении условия в новом кадре данных - PullRequest
0 голосов
/ 21 апреля 2020

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

Предположим, у меня есть Dataframe с индексом и 4 прикрепленными столбцами:

enter image description here

import numpy as np
import pandas as pd

data = {'df': [0, 0,0,1,0], 'cba': [np.nan, 696,1021,146,np.nan],'Availability_150': [2.26,36.2 ,70.15,40.78,11.4],'max_av_alt': [100,120 ,140,135,130]}
df = pd.DataFrame(data=data)

Теперь, когда в столбце cba есть значение nan, я хочу, чтобы вся строка перемещалась / копировалась в другой DataFrame. Цель состоит в том, чтобы иметь два разных фрейма данных, один из которых содержит все не-Nan-значения cba, а другой - все nan-значения.

Чтобы выяснить, есть ли у меня значение nan или нет, мне нужно вставьте:

np.isnan(df_result.iloc[:,1])

Но у меня нет абсолютно никакой идеи:

df_result_nan['cba-nan'] = df_result[df_result['cba'] == np.isnan(df_result.iloc[:,1])]

Это дает мне только значения nan в новом кадре данных

df_result_nan['cba-nan'] = np.isnan(df_result.iloc[:,1])

Это дает мне только маска True / False для cba ...

Надеюсь, вы мне поможете, я уже некоторое время работаю с DataFrames, но есть так много аспектов, которые я до сих пор не могу понять.

С уважением.

1 Ответ

1 голос
/ 21 апреля 2020
df_result_nan['cba-nan']     = df.loc[ df['cba'].isnull()]
df_result_nan['cba-not-nan'] = df.loc[~df['cba'].isnull()] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...