作者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/cn.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