前提・実現したいこと
Python pandas使って、10万行×10列あるデータを特定条件にマッチしたものを除外したリストをアウトプットする。
|No|Name|Sex|Birth|age|From|blood
|:--|:--:|--:|
1|Suzuki|Female|19950224|25|Osaka|A
2|TakemotoHina|Female|19991111|53|Osaka|A
3|Suzuki|Male|19991111|36|Tokyo|B
4|HanadaTamami|Female|19650503|55|Osaka|B
5|Suzuki|Male|19690919|51|Tokyo|O
6|FukayaYoshio|Male|19970430|23|Tokyo|O
7|TejimaYoshiko|Female|19810418|99|Osaka|O
8|Suzuki|Female|19920913|28|Kyoto|AB
9|Suzuki|Male|19720803|87|Kyoto|AB
10|KamiyamaTetsuko|Female|19890731|91|Saitama|O
https://hogehoge.tk/personal/generator/ にてランダム生成したものを少し修正
###条件
以下の条件に合致したものはリストから除外する
条件1 Name=Suzuki &Sex=Female &From=Osaka
条件2 Birth=19991111 &blood=A
条件3 From=Osaka,age>70
条件1でNo.1を除外
条件2でNo.2を除外
条件3でNo.7を除外
最終的に
No.3,4,5,6,8,9,10を出力したい
該当のソースコード
各条件ごとにステップに分けて徐々にリストを小さくしていければと思っています
df_1 = df[~(df['Name']=='Suzuki') and (df['Sex']=='Female') and (df['From']=='Osaka')] df_2 = df_1[~(df_1['Birth']=='19991111') and (df_1['blood']=='A')] df_3 = df_2[~(df_2['From']=='Osaka') and (df_2['age']>70)]
素人でうまく書けませんが、上記ような形で、、、
補足情報(FW/ツールのバージョンなど)
python 3.9.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。