使用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對資料集進行清洗與視覺化Python視覺化
- 使用MySQL Workbench進行資料庫備份MySql資料庫
- 從MySQL大量資料清洗到TiBD說起MySql
- 使用離線工具dmbackup進行資料庫備份資料庫
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- tensorflow資料清洗
- Mysql 誤刪資料進行恢復MySql
- 如何使用Hadoop捆綁的低階工具進行資料提取?Hadoop
- 使用pandas進行資料分析
- 5款優秀的資料清洗工具任你選擇
- 資料清洗和資料處理
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- 資料清洗與預處理:使用 Python Pandas 庫Python
- 使用KepServerEx進行資料模擬Server
- 資料清洗如何測試?
- 資料清洗有哪些方法?
- 實際使用Elasticdump工具對Elasticsearch叢集進行資料備份和資料還原Elasticsearch
- XtraBackup工具詳解 Part 5 使用innobackupex對資料庫進行全備資料庫
- Elasticsearch 使用 NFS 進行資料備份ElasticsearchNFS
- 使用ETL進行資料接入的方式
- 使用python進行合併資料集Python
- 使用 Python 進行資料視覺化Python視覺化
- 資料治理為什麼要清洗資料
- 機器學習-資料清洗機器學習
- 資料清洗的方法有哪些?
- 資料清洗處理-常用操作
- python 操作 excel 之資料清洗PythonExcel
- 自動同步整個 MySQL/Oracle 資料庫以進行資料分析MySqlOracle資料庫
- MySQL的原始碼安裝及使用UDFs進行資料自動更新的教程MySql原始碼
- 技術分享 | 使用 sync_diff_inspector 對兩個 MySQL 進行資料校驗MySql
- 使用DataLakeAnalytics從OSS清洗資料到AnalyticDB
- 使用 Python 進行資料分析:入門指南Python
- 使用 useLazyFetch 進行非同步資料獲取非同步
- 使用Spring Data JPA進行資料庫操作Spring資料庫
- 使用Excel資料進行條件刪除Excel
- 如何使用Python 進行資料視覺化Python視覺化
- 對 LLM 工具使用進行統一
- 利用pandas進行資料清洗,利用神經網路預測成績(參考資料酷客,學生成績預測)神經網路