看板 Python 關於我們 聯絡資訊
其實用不到csv, 你的資料檔一樣可由pandas讀入: df = pd.read_csv('tttest1112.csv') dat = pd.read_csv('bird-1.csv') 把多餘的括號移除: # remove parenthesis f = lambda s: s.split('(')[0] df['birdName'] = df['birdName'].map(f) 執行篩選並存擋: for birdname in df['birdName']: savepath = 'your/file/path/' + birdname + '.csv' dat[dat['birdName']==birdname].to_csv(savepath) ※ 引述《allen511081 (藍)》之銘言: : 抱歉,題目無法詳述我的問題,先將我的程式碼貼上 : # -*- coding: utf-8 -*- : import pandas as pd : import csv : df = pd.read_csv('birds-1.csv',low_memory=False) : dfs=[] : names=[] : with open('tttest1112.csv','rb') as csvfile: : records = csv.reader((line.replace('\0','') for line in csvfile), : delimiter=",") : for row in records: ##將原始資料存入 : for i in xrange(1,6,1): : df2=df[df['birdName'].isin(row)] : df2.to_csv('./'+str(i)+'.csv',index=False) : 最近我重新開始我的資料剖析,在pandas這邊遇到一樣存檔問題, : 而這次比較不一樣的是,我一個tttest1112.CSV測試檔裡放鳥名, : 附圖:https://goo.gl/zxLWk7 : 我要從這個CSV裏頭, : 將鳥名傳到上面的isin()後,對原始資料(df)做特定值的選取, : https://goo.gl/dQKKuH : 之後再存成新的CSV檔,而這樣的語法寫完後,可以產生5個CSV檔, : 但是裡面的資料都會是最後一個鳥名的資料(我記得DF好像只會存最後一筆的資料?), : 請問對於DF的操作有沒有辦法讓五種鳥的資料分別存一個CSV檔? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.113.106 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1436453659.A.A37.html
allen511081: 感謝前輩的解答,自己想的太複雜了 07/10 12:38
allen511081: 不過現在會出錯在df['birdName'].map(f),因為我是 07/10 12:39
allen511081: 要用tttest1112裡的名字去原始資料裡搜尋,但是這個 07/10 12:40
allen511081: 檔案好像有一些奇怪的字元,我不太會處理,還請前輩 07/10 12:41
allen511081: 指導一下 07/10 12:41
allen511081: 錯誤訊息:KeyError: 'birdName' 07/10 12:42
beatitude: 因為我沒有csv檔案,所以無法重現你的錯誤訊息 07/10 18:07
allen511081: 抱歉,附上下載連結,birds-1:https://goo.gl/2B6ym3 07/10 18:45
allen511081: ttttest1112:https://goo.gl/6IWQk5 07/10 18:46
beatitude: code放在: https://goo.gl/9o9s31 07/10 21:10
beatitude: 不過因為測試檔沒有涵蓋所有的鳥名,所以只拆出部分 07/10 21:12
allen511081: 好的,我會全部來測試看看 07/10 21:42
allen511081: 感謝前輩的指導 07/10 21:42
※ 編輯: beatitude (1.163.108.193), 07/11/2015 14:19:34