A csv
文件是纯文本,所以几乎任何代码都可以读取它。通过ipython
,你可以用shell命令,Python阅读,或者numpy或pandas阅读它。
知道文件位于何处的第一个问题。这是一个文件系统问题 - 目录是什么。在ipython
中,您可以使用%pwd
魔术查看当前目录,并使用%cd
更改目录。 %ls
给出了目录列表。通过magics
,您可以使用linux shell(如bash
)(以及带有一些术语调整的窗口)的所有文件和目录操作。
一旦找到,你可以看看与%cat
例如文件:
In [26]: %pwd
Out[26]: '/home/paul'
In [27]: %ls
~/ Desktop/ Downloads/ mypy/ Public/ Videos/
bin/ Documents/ Music/ Pictures/ Templates/
In [28]: %cd mypy
/home/paul/mypy
In [29]: %ls test*
test test2.hdf test.h5 test.ipy test.mat test.npz
test1.hdf test.gz test.hdf5 testipy.py test.npy test.txt
In [30]: %cat test
one a 1
two b 2
three c 3
普通的Python阅读:
In [34]: f=open('test')
In [35]: f.read()
Out[35]: ' one a 1\n two b 2\n three c 3\n'
In [36]: f.close()
np.genfromtxt
是最强大的numpy
CSV阅读:
In [38]: np.genfromtxt('test',dtype=None)
Out[38]:
array([(b'one', b'a', 1), (b'two', b'b', 2), (b'three', b'c', 3)],
dtype=[('f0', 'S5'), ('f1', 'S1'), ('f2', '<i4')])
在这种情况下,我得到了一个结构化dtype的1d数组 - 因为字符串和数字列的组合。在这种情况下,我的分隔符是空格。
或loadtxt
:
In [40]: np.loadtxt('test',dtype='str')
Out[40]:
array([["b'one'", "b'a'", "b'1'"],
["b'two'", "b'b'", "b'2'"],
["b'three'", "b'c'", "b'3'"]],
dtype='<U8')
我没有pandas
本机上安装所以不能证明,但我认为data = pd.read_csv('data.csv', delimiter=',')
应该是足够了(即文件名和分隔符)。
请编辑你的问题,包括你已经尝试过。 –
如果您使用的是熊猫,请将该标记置于您的问题或其他包中 –
您确定文件Data.csv与python脚本位于完全相同的目录中吗? –