尝试删除具有键值的行时没有错误
问题描述:
我想使用键值删除数据框中的行。我有代码,但它不会工作。我没有得到一个错误或其他东西。它只是不删除行。我尝试了不同的东西,但没有任何帮助愿你能给我一个答案。尝试删除具有键值的行时没有错误
下面的列表:
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
从这个名单,我想在列MW_BW与键值“P”要删除的行。
那是我的代码为:
data_faktura[data_faktura.MW_BW != 'P']
对于解释:data_faktura是我的数据帧。
什么即时做错了?
谢谢你的帮助!
答
它看起来像你的价值P
有一些空格之前或字母后:
所以尽量strip
空格:
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
编辑:
你也可以生成值列表,它们是不被遗漏:
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']
你做这样的 - '''data_fakura = data_faktura [data_faktura.MW_BW = 'P'!]'''?您必须将返回的df分配回原来的df。 – TrigonaMinima
如何做到这一点? – Damian
用'''data_faktura = data_faktura [data_faktura.MW_BW!='P']'''替换你的代码行。 – TrigonaMinima