不知道为啥,用pandas将文件读入DataFrame时,将前面的0自动给我删了,比如000003就直接给我转为3了,这样再做后续操作的时候肯定就会出错的嘛。比如我是打算把000003转换为00:00:03的,结果就搞不成了。不让我转,删了总行了吧,反正这个也是无效信息。就考虑根据列中值的字符串长度,进行行的删除。
首先想到的就是布尔索引,下面先介绍下布尔索引
df=df[逻辑表达式取反]
以下面的表格为例,定义其为DataFrame对象df:
index A B C D E
0 2 6 9 2 3
1 3 NaN 3 0 1
2 5 6 6 NaN 9
3 9 0 6 0 7
4 9 NaN 8 5 3
5 7 9 4 3 2
6 6 1 7 1 NaN
(1)删去满足条件的行
删去B列大于7或D列为0的行,也就是要保留B列小于等于7且D列不为0的行
df=df[~((df['B']>7)|(df['D']==0))]
print(df)
以上代码跟下面的代码效果一样,上面逻辑表达式取了反,下面没取反
df=df[(df['B']<=