pandas 过滤某些值。语法看起来简单,老是出错。试验过才知道问题出在哪里,所谓知行合一嘛
import pandas as pd
import numpy as np
import os
import time
# 主要是简单合并excel, 太多了。麻烦的很,不想搞 。
# 地址
# 修改一下,换一个新的保存地址。最好加上时间
path = r"C:\Users\1\Desktop\工作\202106\test"
path1 = r"C:\Users\1\Desktop\工作\202106\save"
# 当前时间格式,很有用。
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
原文:https://www.cnblogs.com/sakura3/p/14888426.html