pandas 过滤某些值。语法看起来简单,老是出错。试验过才知道问题出在哪里,所谓知行合一嘛
import pandas as pd import numpy as np import os import time # 主要是简单合并excel, 太多了。麻烦的很,不想搞 。 # 地址 # 修改一下,换一个新的保存地址。最好加上时间 path = r"C:Users1Desktop工作202106 est" path1 = r"C:Users1Desktop工作202106save" # 当前时间格式,很有用。 tim = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) # print(path + '\' + tim + '.xlsx') # print(a) filenames = os.listdir(path) df = pd.DataFrame() # 遍历需要文件夹所有文件 for i in filenames: # print (path + '\'+ i ) -- 验证地址 data = pd.read_excel(path + '\' + i) df = df.append(data) df # 地址 # adres = path1 + '\' + tim + '.xlsx' # print(adres) # df.to_excel(adres)
过滤单个值
# 完成过滤单个值 df[df['一级品类'] != '食品']
这样也可以过滤单值。
# 完成过滤单个值 df[ df.一级品类 != '食品']
过滤多个值。 df[] 里面是个布尔函数判断. true 还是false 。这样来进行的。
# 多个值 df[] 里面是个布尔函数判断. true 还是false # 之所以错误,就是因为后面的 () 里面套[] .不要弄反了. df[ df['二级品类'].isin(['日化家清']) ]
处理新列。
# 判断条件 mask1=df['销售件数'] <0 mask1 # 新增列,处理负数为零。 然后原来给原来。应该有简单的方式。 df['水'] = np.select([mask1], ['0'], df['销售件数']) df