dictまたはcomprehensionリストを渡すデータフレーム内の行を選択する。dictでデータフレームを選択するにはパラメータまたは理解リストを渡す。python pandas
私は数百万行のデータフレームを持っていますが、パラメータのリストに対応するこのデータフレームの一部だけを選択する関数を作成します。それを複雑にするには、データフレームとリストを渡す必要がありますが、このリストにはNaN値と '0'を含めることができます。したがって、適切な行を選択するには、このエントリを削除する必要があります。
エントリーリスト:
b = ['MUSTANG', 'Coupé', '0', np.nan, np.nan]
AGE KM Brand Model Liter Bodycar Power
0 2.0 10000.0 FORD MUSTANG 5.0 Coupé 421
1 2.0 10000.0 FORD MUSTANG 5.0 Coupé 421
2 5.0 10400.0 FORD MUSTANG 5.0 Coupé 421
3 5.0 10400.0 FORD MUSTANG 5.0 Coupé 421
4 16.0 20700.0 FORD MUSTANG 3.7 Coupé 317
5 7.0 23300.0 FORD MUSTANG 3.7 317
6 7.0 23300.0 FORD MUSTANG 2.3 Coupé 301
7 7.0 23300.0 FORD MUSTANG 5.0 421
...
I started a function to remove the part of the list useless and try to select the proper rows but failed...
def func_mcclbp_incomp(df, mcclbp):
ind = []
mcclbp = [i if type(i) == str else '0' for i in mcclbp]
ind = [i for i, x in enumerate(mcclbp) if x=='0']
head = ['Brand','Model','Bodycar','Liter', 'Power']
mmcclbp = {head[0]:mcclbp[0], head[1]:mcclbp[1], head[2]:mcclbp[2], \
head[3]:mcclbp[3], head[4]:mcclbp[4]}
for i in ind:
del mmcclbp[head[i]]
df = df[df[head[i]==mccblp[i]] for i in mmcclbp.key()]
return df
は、私が理解リストを試みたが、パンダは私にエラーを送信します。私はKeyError例外を持っている辞書を渡してみました
File "<ipython-input-235-6f78e45f59d4>", line 1
df = df[df[head[i].isin(mccblp[i]) for i in mmcclbp.keys()]]
^
SyntaxError: invalid syntax
。
私はBを使用する場合に必要な出力は次のとおりです。
AGE KM Brand Model Liter Bodycar Power
0 2.0 10000.0 FORD MUSTANG 5.0 Coupé 421
1 2.0 10000.0 FORD MUSTANG 5.0 Coupé 421
2 5.0 10400.0 FORD MUSTANG 5.0 Coupé 421
3 5.0 10400.0 FORD MUSTANG 5.0 Coupé 421
4 16.0 20700.0 FORD MUSTANG 3.7 Coupé 317
6 7.0 23300.0 FORD MUSTANG 2.3 Coupé 301
私は次のように別の値にBを変更した場合:
b = ['FORD', 'MUSTANG', 'Coupé', '3.7', '317']
結果は次のようになります。
AGE KM Brand Model Liter Bodycar Power
4 16.0 20700.0 FORD MUSTANG 3.7 Coupé 317
誰かが知っていますリストに対応する行を自動的に選択する方法は?
お返事ありがとうございます。
Chris。
あなたは 'B = [「MUSTANG」、「クーペ」から所望の出力を追加することができ、 '0'、np.nan、np.nan] 'とあなたのサンプルデータ? – jezrael
はい、私は入力を書くのを忘れて申し訳ありません...編集はあなたが何をする必要があるかを示しています。 –
さらに最初の出力を説明することができますか?なぜ、 '0'や' nan'sがあるとデータを取得するのですか? – jezrael