我目前正在尝试用Python导入一个大的csv数据集,但没有成功。我有一个很大的股票报价的csv文件(一个股票列对应一个股票,另一个列对应一个股票的股息)我使用csv模块,但事实是我无法得到一个np.array,哪些列是股票报价,Python创建了一个np.array by rows,我想要一个np.array by column。我该怎么办? 谢谢你的帮助!
def read_csv_data(path):
"""
Reads CSV from given path and Return list of dict with Mapping
"""
data = csv.reader(open(path))
# Read the column names from the first line of the file
fields = data.next()
data_lines = []
for row in data:
items = dict(zip(fields, row))
data_lines.append(items)
return data_lines
year indiv zit xit
0 1977 A 1.2 0.60
1 1977 B 1.5 0.50
2 1977 C 1.7 0.80
3 1978 A 0.2 0.06
4 1978 B 0.7 0.20
5 1978 C 0.8 0.30
6 1978 D 0.9 0.50
指定块大小(您将获得一个可迭代对象):
reader = read_table(’tmp.sv’, sep=’|’, chunksize=4)
for chunk in reader:
.....: print chunk
输出:
year indiv zit xit
0 1977 A 1.2 0.60
1 1977 B 1.5 0.50
2 1977 C 1.7 0.80
3 1978 A 0.2 0.06
year indiv zit xit
0 1978 B 0.7 0.2
1 1978 C 0.8 0.3
2 1978 D 0.9 0.5
3条答案
按热度按时间enxuqcxy1#
我已经创建了一小块函数,它可以读取csv文件的路径,并立即返回dict列表,然后您可以非常容易地循环通过列表,
也许这能帮到你
问候
sdnqo3pr2#
您正在寻找的是
ndarray.shape
和ndarray.reshape
函数。Link
否则,你可以简单地读它的方式,然后做转置
其中x是ndarray。
所有这些小东西通常都在文档中。我建议先仔细阅读这些。
wvmv3b1j3#
我推荐使用Pandas库。它还可以让你用小块来读取大的csv文件。这里有一个来自文档的例子:
数据:
指定块大小(您将获得一个可迭代对象):
输出:
NB!如果你需要进一步操纵你的股票数据,Pandas无论如何都是最好的选择。