去除資料裡面所有na ,或者資料單一的列。使用的方法為迴圈,對所有的列進行判斷。columns = detail.columns
#取出所有的列
drop_list =
for column in columns:
# print(column)
# 進行去重,在一列下,資料一樣的進行去重
res = detail.drop_duplicates(subset=column,inplace=false)
# print(res)
# print(res.shape)
# print("*"*80)
if res.shape[0] == 1:
# 認為它這一列所有資料一樣,不管是na還是一樣的數值型別
print(drop_list)
#刪除行資料一樣的列
detail.drop(labels=drop_list,axis=1,inplace=true)
print(detail)
print(detail.shape)
import pandas as pd
detail = pd.concat((detail_0,detail_1,detail_2),axis=0,join='inner')
#載入info
info = pd.read_csv('./meal_order_info.csv',encoding='ansi')
#detail繼續與info進行拼接
#detail裡面只有訂單id 可以找到其他的資訊
#info裡面是那些人點了那些訂單
#info與detail進行主鍵拼接
#left_on = 'order_id',right_on='info_id'在兩個表中order_id和info_id兩個資料的值一樣,可以在連線時left_on作為左邊的依據,
# right_on作為右邊的依據,inner內連線求交集
res = pd.merge(left=detail,right=info,how='inner',left_on = 'order_id',right_on='info_id')
print(res)
#將res與users進行主鍵拼接
#載入users
users = pd.read_excel('./users.xlsx')
#將res與users 進行主鍵拼接
res = pd.merge(left=res,right=users,how='inner',left_on='name',right_on='account')
# print(res)
#刪除裡面為na的資料,或者一樣的列--針對原生的資料,乙個sheet的detail去進行。去重和統計非空數值的數目來實現
# print(res.columns)
# res = pd.unique(res)
print(res.shape)
count去重和distinct去重
有兩種去重方法 1 select count distinct id from a 這個是將所有值都放入到記憶體中,key為列值,通過hash算出有多少個key就是多少行。2 select count 1 from select 1 from a group by id a,這個是通過group b...
JS陣列去重,物件去重
例項1根據indexof去重,indexof的好處就是返回的是首次出現的位置,這樣後面即使出現的值一樣,也只能返回第一次出現的索引,當然這個只適用於簡單的陣列 物件陣列去重 const objarr const obj const newobjarr for let i 0 i objarr.len...
lambda 物件去重 lambda去重
lambda去重使用collectingandthen方法 list 物件中,如果根據object的單個屬性進行過濾去重,則 list userlist users.stream collect collectors.collectingandthen collectors.tocollection...