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