使用Mysql工具進行資料清洗
資料資源
https://gitee.com/pingfanrenbiji/resource/blob/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%80%E7%AB%A0/database1/transaction_info.csv
將csv匯入資料庫
一路continue
有一份追加資料
https://gitee.com/pingfanrenbiji/resource/blob/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%80%E7%AB%A0/database1/insert.csv
insert.csv資料欄位和transaction_info.csv資料欄位一致
將insert.csv裡面的資料追加到transaction_info表中
同樣的匯入方式 匯入insert.csv
資料清洗
刪除重複資料
分析:
先分組、再計數、再篩選、再去重
select Transaction_index from transaction_info GROUP BY Transaction_index HAVING count(Transaction_index)>1;
delete from transaction_info where Transaction_index='2009-01-02_0039';
修改null值為0
# 更新的邏輯是 先查詢 再更新
update transaction_info set Amount=0,Last_Amount=0 where Amount is null;
update transaction_info set Amount=0,Last_Amount=0 where Last_Amount is null;
修正異常值
# 查詢國家的異常值 對國家進行分組 然後統計個數
select Country,count(Country) from transaction_info GROUP BY Country;
# 從而可以找到異常值
Country in (1,2,3)
select * from transaction_info where Country in (1,2,3);
# 獲取城市為Houston的國家資訊 檢視該城市屬於哪個國家
SELECT DISTINCT Country FROM transaction_info WHERE City = 'Houston';
# 將異常值更新為正常的國家名稱
UPDATE transaction_info SET Country = 'United States' WHERE City = 'Houston' AND Country = '3';
熟練使用mysql常用句式
-
資料
https://gitee.com/pingfanrenbiji/resource/tree/master/%E9%87%91%E8%9E%8D%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC%E4%B8%80%E7%AB%A0/database2
-
案例
需求:
1、購買了產品1的使用者資料 標是查詢使用者資訊 所以使用者表是基礎表
2、Trans_Account_age(交易日期距離註冊日期的自然月間隔)、days_since_last_login(交易距離上次登入的天數)
3、分組 在agegroup欄位準確分組Trans_Account_age資料,以 “0~1”表示0至1(包含1), “1~12”表示1至12(包含12), “12+”表示12以上
SQL:
SELECT U.* ,T.*
, TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) AS Trans_Account_age #交易日期距離註冊日期的自然月間隔
, TimeStampDiff (DAY, T.Last_login, T.Transaction_date) AS days_since_last_login #交易距離上次登入的天數
, CASE
WHEN TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) IN (0,1) THEN '0~1'
WHEN TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) > 1 AND TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) <= 12 THEN '1~12'
WHEN TimeStampDiff (MONTH, U.Account_Created, T.Transaction_date) > 12 THEN '12+'
ELSE ''
END AS agegroup
FROM user_info AS U
LEFT JOIN transaction_info AS T ON T.ID = U.ID
WHERE T.Product = 'Product1'
;
相關文章
- 利用Python Pandas進行資料預處理-資料清洗Python
- python對資料集進行清洗與視覺化Python視覺化
- mysql使用binlog進行資料恢復MySql資料恢復
- 資料清洗
- 使用 xtrabackup 進行MySQL資料庫物理備份MySql資料庫
- 使用離線工具dmbackup進行資料庫備份資料庫
- 使用mysqldump進行mysql資料庫備份還原MySql資料庫
- 機器學習-資料清洗機器學習
- MySQL系列第四篇:利用MySQL工具之SQLYog進行資料匯入MySql
- 從MySQL大量資料清洗到TiBD說起MySql
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- tensorflow資料清洗
- 資料清洗經驗
- 5款優秀的資料清洗工具任你選擇
- Mysql 誤刪資料進行恢復MySql
- 資料清洗和資料處理
- 八個機器學習資料清洗機器學習
- 資料清洗有哪些方法?
- 如何使用Hadoop捆綁的低階工具進行資料提取?Hadoop
- 使用RMAN進行資料遷移
- 實際使用Elasticdump工具對Elasticsearch叢集進行資料備份和資料還原Elasticsearch
- MySQL資料庫遭到攻擊篡改---使用備份和binlog進行資料恢復MySql資料庫資料恢復
- XtraBackup工具詳解 Part 5 使用innobackupex對資料庫進行全備資料庫
- 資料治理為什麼要清洗資料
- 資料質量管理--資料抽取和清洗
- 資料清洗處理-常用操作
- 資料清洗的方法有哪些?
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- Elasticsearch 使用 NFS 進行資料備份ElasticsearchNFS
- 使用RMAN進行資料庫複製資料庫
- 資料管理:業務資料清洗,落地實現方案
- 使用YCSB工具工具進行cassandra效能測試
- MySQL資料庫備份工具Mydumper使用介紹MySql資料庫
- 自動同步整個 MySQL/Oracle 資料庫以進行資料分析MySqlOracle資料庫
- 利用pandas進行資料清洗,利用神經網路預測成績(參考資料酷客,學生成績預測)神經網路
- 資料清洗和準備 (待更新)
- python 操作 excel 之資料清洗PythonExcel
- 常用資料清洗方法大盤點