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

  

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