当条件满足时,将熊猫中的行复制到新的数据框中

时间:2020-04-21 13:58:09

标签: python pandas numpy 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值,我都希望将 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已有一段时间了,但是我似乎仍然无法理解很多方面。

亲切的问候。

1 个答案:

答案 0 :(得分:1)

df_result_nan['cba-nan']     = df.loc[ df['cba'].isnull()]
df_result_nan['cba-not-nan'] = df.loc[~df['cba'].isnull()]