我有多個大型 CSV 檔案。這些 CSV 檔案幾乎沒有列差異。為了將它們提供給 AWS QuickSight 進行資料可視化,我想統一這些 CSV 檔案的結構。我認為為此我有兩種方法:
- 將缺失的列添加到每個 CSV 檔案中,使它們看起來都一樣
- 將所有 CSV 檔案合并為一個大檔案
執行此操作的最佳工具是什么?
有什么工具可以顯示兩個 CSV 檔案的結構差異嗎?如果我發現缺少哪些列,我也可以手動添加它們。
使用 pandas,我可以合并 CSV 檔案,但據我所知,我應該命名所有列(下面的代碼),這沒有用。
import pandas as pd
df1 = pd.DataFrame({'column1': [1,2],
'column2': [3,4],
})
df2 = pd.DataFrame({'column1': [5,6],
'column3': [7,8],
})
pd.concat([df1,df2],ignore_index=True)
結果:
column1 column2 column3
0 1 3.0 NaN
1 2 4.0 NaN
2 5 NaN 7.0
3 6 NaN 8.0
uj5u.com熱心網友回復:
我不能告訴你什么是“最好的”工具。這是主觀的,有很多依賴。
我可以告訴你,miller可能應該在你考慮使用 CSV 資料的工具的短名單上。另請參閱millerGitHub 站點。最后一件事:作者非常樂于助人。
我有充分的權威認為以下將完成這項作業:
mlr --csv reshape -r "^A" -o item,value then reshape -s item,value \ then unsparsify --fill-with "" *.csv > result.csv
關于命令的一些注意事項:
- reshape -r "^A" -o item,value,將輸入的 CSV 從寬轉換為長,將其應用于名稱以“A”開頭的所有欄位;
- reshape -s item,value,將之前的輸出從long轉換為wide;
- unsparsify --fill-with "",管理所有輸入記錄的欄位名稱。對于給定記錄中不存在但存在于其他記錄中的欄位名稱,填寫值“”。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486691.html
