pandas过滤值

 

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

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章