图片

pandas删除满足条件的行_其他

 

删除作废发票及其所在行。

train2=pd.read_excel('1.xlsx',sheet_name='4')//读取内容
print(train2)//输出

企业代号 金额 税额 价税合计 发票状态
0 E1 9401.71 1598.29 11000 有效发票
1 E1 8170.94 1389.06 9560 有效发票
2 E1 8170.94 1389.06 9560 有效发票
3 E1 4085.47 694.53 4780 有效发票
4 E1 4085.47 694.53 4780 有效发票
5 E1 15042.73 2557.27 17600 作废发票
6 E1 -2290.60 -389.40 -2680 有效发票
7 E1 -12307.69 -2092.31 -14400 有效发票
8 E1 12307.69 2092.31 14400 有效发票
9 E2 9401.71 1598.29 11000 有效发票
10 E2 8170.94 1389.06 9560 有效发票
11 E2 8170.94 1389.06 9560 有效发票
12 E2 4085.47 694.53 4780 有效发票
13 E2 4085.47 694.53 4780 有效发票
14 E2 15042.73 2557.27 17600 有效发票
15 E2 -2290.60 -389.40 -2680 有效发票
16 E2 -12307.69 -2092.31 -14400 有效发票
17 E2 12307.69 2092.31 14400 有效发票

//接下来三句代码显示drop原理
print(train2['发票状态']=='作废发票')

输出每行的属性是否满足该条件,满足为True,不满足为False。

0 False
1 False
2 False
3 False
4 False
5 True
6 False
7 False
8 False
9 False
10 False
11 False
12 False
13 False
14 False
15 False
16 False
17 False

print(train2[train2['发票状态']=='作废发票'])
//输出的是满足条件的行。

企业代号 金额 税额 价税合计 发票状态
5 E1 15042.73 2557.27 17600 作废发票

print(train2[train2['发票状态']=='作废发票'].index)
//Int64Index([5], dtype='int64')
将其变为行索引
df_clear = train2.drop(train2[train2['发票状态']=='作废发票'].index)//将满足条件的行的索引放入drop进行丢弃。
print(df_clear)

 输出

企业代号 金额 税额 价税合计 发票状态
0 E1 9401.71 1598.29 11000 有效发票
1 E1 8170.94 1389.06 9560 有效发票
2 E1 8170.94 1389.06 9560 有效发票
3 E1 4085.47 694.53 4780 有效发票
4 E1 4085.47 694.53 4780 有效发票
6 E1 -2290.60 -389.40 -2680 有效发票
7 E1 -12307.69 -2092.31 -14400 有效发票
8 E1 12307.69 2092.31 14400 有效发票
9 E2 9401.71 1598.29 11000 有效发票
10 E2 8170.94 1389.06 9560 有效发票
11 E2 8170.94 1389.06 9560 有效发票
12 E2 4085.47 694.53 4780 有效发票
13 E2 4085.47 694.53 4780 有效发票
14 E2 15042.73 2557.27 17600 有效发票
15 E2 -2290.60 -389.40 -2680 有效发票
16 E2 -12307.69 -2092.31 -14400 有效发票
17 E2 12307.69 2092.31 14400 有效发票