38654


特定の条件を満たす行のみを選択して、データセット全体から削除したいと考えています。  
pandasのdataframeにdfというデータがあります。  
この中から、「同意しません」とある行全体をデータから削除したいと考えています。

現在のところ、  
不同意のサンプルをselection1というグループにして、  
dfから、該当する行全体、データから削除しようとしているのですが、この部分がうまく行きません。  
もし条件の指定と、その条件に見合うデータのみを削除する方法を  
ご存じでしたら、ご教示頂けますとありがたいです。  
よろしくお願いします。

[code]

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(
        {'x': ['同意します', '同意しません', '同意します', '同意しません',]},
        index=[1, 2, 3, 4, ])
    
    consent_dic = {"同意します":1, "同意しません":0}
    df["consent"] = df.apply(lambda row: consent_dic[row["x"]], axis=1)
    
    #不同意のサンプルを選択
    selection1 = df.consent==0
    
    #不同意のサンプルを削除 ?
    df.drop(df.consent.selection1)
    
[/code]


CC BY-SA 3.0
2017-10-11T09:08:01.030
38598
2017-10-13T00:50:40.373
20148
question
python pandas
特定の条件を満たす行のみを削除するには？


次のコマンドで、実行できました。

[code]

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(
        {'x': ['同意します', '同意しません', '同意します', '同意しません',]},
        index=[1, 2, 3, 4, ])
    
    df.drop(df.index[df.x == '同意しません'], inplace=True)
    
[/code]


CC BY-SA 3.0
2017-10-13T00:50:40.373
38654
2017-10-13T00:50:40.373
20148
38598
answer