我在一個檔案夾中有多個 csv 檔案(我已將其移至 pandas 資料框),每個檔案都包含每月的網站資料
January.csv:
URL Value
page1 10
page2 52
page3 17
February.csv:
URL Value
page1 20
page2 7
page3 15
March.csv:
URL Value
page1 7
page2 15
page3 23
并且需要通過從每個復制 Value 列來組合它們以創建一個新的資料框(最終將匯出到另一個 csv)
URL January February March
page1 10 20 7
page2 52 7 15
page3 17 15 23
每個月都會將一個新的 csv 檔案添加到該檔案夾??中,因此我需要使其盡可能保持動態。我目前正在
all_filenames = [i for i in glob.glob('*.{}'.format('csv'))]用來獲取檔案,希望我可以使用類似的東西pd.read_csv(f)['URL'] for f in all_filenames,但這可能是完全錯誤的方法?
誰能指出我正確的方向?
謝謝
uj5u.com熱心網友回復:
雖然@robinood 的回答是正確的,但我認為使用生成器運算式(在圓括號中)更有效:
all_filenames = [i for i in glob.glob('*.{}'.format('csv'))]
result = pd.concat((pd.read_csv(f, index_col='URL', usecols=['URL', 'Value']) for f in all_filenames), axis=1)
請注意,上面的代碼段還設定URL為索引,以避免由于行的不同排序而導致潛在的連接錯誤。
uj5u.com熱心網友回復:
使用 glob 和 read_csv 函式開始你的方法很好。
all_filenames = [i for i in glob.glob('*.{}'.format('csv'))]
all_df = [pd.read_csv(f) for f in all_filenames]
然后,當您擁有包含您的 dfs 的串列時,您可以連接它們。
result = pd.concat(all_df, axis=1)
首先讀取所有資料幀,然后使用一次連接函式比單獨連接每個 df 更有效。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/526487.html
標籤:Python熊猫数据框
上一篇:在關系模型中使用where()子句With()和wherehas()有什么區別
下一篇:比較熊貓資料框中每個專案的數量
