【问题标题】:Copy Row in Pandas when Condition is met into a new Dataframe当条件满足时将 Pandas 中的行复制到新的数据框中
【发布时间】:2020-08-04 07:22:44
【问题描述】:

我自己已经尝试了几个小时了,现在进展不大,所以我来找你帮忙。

假设我有一个带有索引和 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 值时,我希望将 整个 行移动/复制到另一个 DataFrame。目标是拥有两个不同的数据帧,一个包含 cba 的所有非 nan-Values,一个包含所有 nan-Values。

要确定我是否有 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 的真/假掩码...

我希望你能帮助我,我已经使用 DataFrames 工作了一段时间,但我似乎仍然无法理解很多方面。

亲切的问候。

【问题讨论】:

    标签: python pandas numpy dataframe


    【解决方案1】:
    df_result_nan['cba-nan']     = df.loc[ df['cba'].isnull()]
    df_result_nan['cba-not-nan'] = df.loc[~df['cba'].isnull()] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-15
      • 1970-01-01
      • 1970-01-01
      • 2018-10-06
      • 2018-03-20
      • 2021-02-24
      • 1970-01-01
      相关资源
      最近更新 更多