看板 Python 關於我們 聯絡資訊
小弟是初學python的新手 網路上有各式各樣讀取CSV的方式好幾種都試過了好像都沒辦法成功 想請問一下一些關於讀取csv檔的問題 我的csv檔資料大約長這樣 label,feature 1 ,70 80 82 72 58 ......... 0 ,80 50 45 125 45 ....... 2 ,120 40 56 78 45 ....... . . 前面是label,後面是pixel(48*48) 目前是用pandas讀取資料的方式 df = pd.read_csv('train.csv') 此時print(train.shape) 為(20000,2) <-20000筆資料 我想問的是如何將後面pixel的資料分開變成48*48的array 因為我如果直接將feature用as_matrix的方式變成narray 他會直接變成28000*1的vector然後每一列都是[70 80 82 72 58....]這種形式 想問怎麼把它變成[70,80,82,72.....]這樣子的形式不然我不能reshape成48*48 這問題困擾我一段時間了故上來發問 加上我打的關鍵字出來的東西好像都.. 麻煩各位大大解惑了 另外再問一個白癡問題,如果用excel開csv檔都沒有逗號是正常的嗎?用程式這邊看會有 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.249.177.201 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1523110584.A.5DC.html
goldflower: pd.read_csv(..., sep=' ', ...) 04/07 22:22
worthy0429: gold大,我有試過這個了這樣子df的shape會變成(20000 04/07 22:35
worthy0429: ,1)耶 04/07 22:35
goldflower: 那可能是用tab分的吧 sep='\t' 看看 04/07 23:27
goldflower: 還不行你就傳個前幾行的版本上來看看 04/07 23:28
hguan: 試試看這個方法dataset = pd.read_csv('train.csv') 04/07 23:38
hguan: xdata = dataset['feature'] 04/07 23:38
hguan: xdata = pd.DataFrame(xdata.str.split(' ').tolist()) 04/07 23:38
hguan: xdata = xdata.reshape(-1,48,48) 04/07 23:40
worthy0429: gold大還是不行 你是只程式前幾行嗎 04/07 23:59
worthy0429: 'StringMethods' object has no attribute 'spilt' 04/08 00:01
worthy0429: 我正在找原因 04/08 00:01
worthy0429: h大用你的方法會xdata.shape會變成(20000,2304)! 04/08 00:18
worthy0429: 但是會出現df沒有reshape的功能,於是我加了一行 04/08 00:19
worthy0429: xdata=xdata.as_matrix()就可以了! 看起來是成功了 04/08 00:25
worthy0429: 非常謝謝我估狗了很久都沒有解決QQ 04/08 00:25
sean50301: 同學你修ML的嗎XD 04/08 12:01
sean50301: xdata.map(lambda x: x.split(‘ ‘)) 04/08 12:02
sean50301: https://i.imgur.com/Mqmki5k.jpg 04/08 12:08
sean50301: 直接貼好了 懶得打 04/08 12:09
sean50301: 關鍵是要tolist再重新建ndarray 04/08 12:10
worthy0429: sean大謝謝我現在人在外面回去用你的方式試試看!!我 04/08 17:58
worthy0429: 是ML初學者在練習題目>< 04/08 17:58
fly168: 嘻嘻樓主該不會跟我修同堂課吧XDD 04/09 06:09