去重與去空案例

2021-09-27 04:03:36 字數 1555 閱讀 1898

去除資料裡面所有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...