作者worthy0429 (鹹鹹)
看板Python
標題[問題] pandas 讀取csv問題
時間Sat Apr 7 22:16:21 2018
小弟是初學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://webptt.com/m.aspx?n=bbs/Python/M.1523110584.A.5DC.html
1F:推 goldflower: pd.read_csv(..., sep=' ', ...) 04/07 22:22
2F:→ worthy0429: gold大,我有試過這個了這樣子df的shape會變成(20000 04/07 22:35
3F:→ worthy0429: ,1)耶 04/07 22:35
4F:推 goldflower: 那可能是用tab分的吧 sep='\t' 看看 04/07 23:27
5F:→ goldflower: 還不行你就傳個前幾行的版本上來看看 04/07 23:28
6F:推 hguan: 試試看這個方法dataset = pd.read_csv('train.csv') 04/07 23:38
7F:→ hguan: xdata = dataset['feature'] 04/07 23:38
8F:→ hguan: xdata = pd.DataFrame(xdata.str.split(' ').tolist()) 04/07 23:38
9F:→ hguan: xdata = xdata.reshape(-1,48,48) 04/07 23:40
10F:→ worthy0429: gold大還是不行 你是只程式前幾行嗎 04/07 23:59
11F:→ worthy0429: 'StringMethods' object has no attribute 'spilt' 04/08 00:01
12F:→ worthy0429: 我正在找原因 04/08 00:01
13F:→ worthy0429: h大用你的方法會xdata.shape會變成(20000,2304)! 04/08 00:18
14F:→ worthy0429: 但是會出現df沒有reshape的功能,於是我加了一行 04/08 00:19
15F:→ worthy0429: xdata=xdata.as_matrix()就可以了! 看起來是成功了 04/08 00:25
16F:→ worthy0429: 非常謝謝我估狗了很久都沒有解決QQ 04/08 00:25
17F:推 sean50301: 同學你修ML的嗎XD 04/08 12:01
18F:→ sean50301: xdata.map(lambda x: x.split(‘ ‘)) 04/08 12:02
20F:→ sean50301: 直接貼好了 懶得打 04/08 12:09
21F:→ sean50301: 關鍵是要tolist再重新建ndarray 04/08 12:10
22F:→ worthy0429: sean大謝謝我現在人在外面回去用你的方式試試看!!我 04/08 17:58
23F:→ worthy0429: 是ML初學者在練習題目>< 04/08 17:58
24F:推 fly168: 嘻嘻樓主該不會跟我修同堂課吧XDD 04/09 06:09