我现在已经独自尝试了几个小时而没有取得太大进展,所以我来找你提供帮助。
假设我有一个带有索引和4个附加列的数据框:
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值,我都希望将 entire 行移动/复制到另一个DataFrame。目标是拥有两个不同的数据框,一个包含cba的所有非nan-Value,另一个包含所有nan-Value。
要弄清楚我是否具有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])
这仅给我cba的True / False掩码...
希望您能为我提供帮助,我已经使用DataFrames已有一段时间了,但是我似乎仍然无法理解很多方面。
亲切的问候。
答案 0 :(得分:1)
df_result_nan['cba-nan'] = df.loc[ df['cba'].isnull()]
df_result_nan['cba-not-nan'] = df.loc[~df['cba'].isnull()]