2016-08-01 4 views
0

キー値を持つデータフレームの行を削除します。私はコードを持っていますが、それは動作しません。私はエラーや何かを得ることはありません。単に行を削除しないでください。私は違うことを試みたが、何も助けなかった。あなたは私に答えを与えることができます。ここでkeyvalueで行を削除しようとしているときにエラーが発生していません

リストです:

 FAK_ART FAK_DAT LEIST_DAT  KD_CRM MW_BW  EQ_NR MATERIAL \ 
0   ZPAF 2015-05-18 2015-05-31   TMD  E 1003507107 G230ETS 
1   ZPAF 2015-05-18 2015-05-31   TMD  B 1003507107 G230ETS 
2   ZPAF 2015-05-18 2015-05-31   TMD  E 1003507108 G230ETS 
3   ZPAF 2015-05-18 2015-05-31   TMD  B 1003507108 G230ETS 
4   ZPAF 2015-05-18 2015-05-31   TMD  E 1003507109 G230ETS 
5   ZPAF 2015-05-18 2015-05-31   TMD  P 1003507109 G230ETS 
6   ZPAF 2015-05-18 2015-05-31   TMD  E 1003507110 G230ETS 
7   ZPAF 2015-05-18 2015-05-31   TMD  B 1003507110 G230ETS 
8   ZPAF 2015-05-18 2015-05-31   TMD  E 1003507111 G230ETS 
9   ZPAF 2015-05-18 2015-05-31   TMD  B 1003507111 G230ETS 
10  ZPAF 2015-05-18 2015-05-31   TMD  E 1003507112 G230ETS 
11  ZPAF 2015-05-18 2015-05-31   TMD  B 1003507112 G230ETS 
12  ZPAF 2015-05-18 2015-05-31   TMD  E 1003507113 G230ETS 
13  ZPAF 2015-05-18 2015-05-31   TMD  P 1003507113 G230ETS 
14  ZPAF 2015-05-18 2015-05-31   TMD  E 1003507114 G230ETS 
15  ZPAF 2015-05-18 2015-05-31   TMD  B 1003507114 G230ETS 

私はキー値「P」と列MW_BW内の行を削除したいこのリストから。

は、そのための私のコードを厥:説明について

data_faktura[data_faktura.MW_BW != 'P'] 

:data_fakturaは私のデータフレームです。

何が間違っていますか?

ありがとうございました!

data_faktura[data_faktura.MW_BW.str.strip() != 'P'] 

サンプル:

data_faktura = pd.DataFrame({'MW_BW':[' P','E','P'], 
          'B':[4,5,6]}) 

print (data_faktura) 
    B MW_BW 
0 4  P 
1 5  E 
2 6  P 

print (data_faktura[data_faktura.MW_BW != 'P']) 
    B MW_BW 
0 4  P 
1 5  E 

print (data_faktura[data_faktura.MW_BW.str.strip() != 'P']) 
    B MW_BW 
1 5  E 

EDIT:

ますのでstrip空白を試す

それはあなたの価値 Pのように見えます
+2

あなたはこのようにそれをやっていますか?返されたdfを元のdfに戻す必要があります。 – TrigonaMinima

+0

どうすればいいですか? – Damian

+2

あなたのコード行を - '' 'data_faktura = data_faktura [data_faktura.MW_BW!= 'P']' ''に置き換えてください。 – TrigonaMinima

答えて

1

の前または文字の後にスペースをいくつか持っています値のリストを生成することもできます。 omitedない: - `` `data_fakura = data_faktura [!data_faktura.MW_BW = 'P']` ``

print (df) 
    FAK_ART  FAK_DAT LEIST_DAT KD_CRM MW_BW  EQ_NR MATERIAL 
0  ZPAF 2015-05-18 2015-05-31 TMD  E 1003507107 G230ETS 
1  ZPAF 2015-05-18 2015-05-31 TMD  B 1003507107 G230ETS 
2  ZPAF 2015-05-18 2015-05-31 TMD  E 1003507108 G230ETS 
3  ZPAF 2015-05-18 2015-05-31 TMD  B 1003507108 G230ETS 
4  ZPAF 2015-05-18 2015-05-31 TMD  E 1003507109 G230ETS 
5  ZPAF 2015-05-18 2015-05-31 TMD  P 1003507109 G230ETS 
6  ZPAF 2015-05-18 2015-05-31 TMD  E 1003507110 G230ETS 
7  ZPAF 2015-05-18 2015-05-31 TMD  B 1003507110 G230ETS 
8  ZPAF 2015-05-18 2015-05-31 TMD  E 1003507111 G230ETS 
9  ZPAF 2015-05-18 2015-05-31 TMD  B 1003507111 G230ETS 
10 ZPAF 2015-05-18 2015-05-31 TMD  E 1003507112 G230ETS 
11 ZPAF 2015-05-18 2015-05-31 TMD  B 1003507112 G230ETS 
12 ZPAF 2015-05-18 2015-05-31 TMD  E 1003507113 G230ETS 
13 ZPAF 2015-05-18 2015-05-31 TMD  P 1003507113 G230ETS 
14 ZPAF 2015-05-18 2015-05-31 TMD  E 1003507114 G230ETS 
15 ZPAF 2015-05-18 2015-05-31 TMD  B 1003507114 G230ETS 

print (df.ix[[5,13],'MW_BW'].tolist()) 
['P', 'P'] 
+0

残念ながら、それは仕事をしなかった...他のアイデア? – Damian

+0

はい、除外されていない値 'P'があるインデックスを持つリストを生成してください。 – jezrael

+0

私は申し訳ありませんが、私はあなたの編集を理解していません!あなたはそれを説明できますか? – Damian

関連する問題