Python-从网址获取CSV内容并解析为数组

时间:2019-02-27 16:11:57

标签: python arrays pandas url

我有问题。

我想从URL获取CSV文件的内容,然后将其解析为数组。这是我现在拥有的代码:

import requests
import pandas as pd
import io

url="https://www.test.com/csv.php"
dataset = requests.get(url, verify=False).content
df = pd.read_csv(io.StringIO(dataset.decode('utf-8')))

data = []
for row in df: # each row is a list
    data.append(row)

但是当我执行此代码时,我只得到CSV的第一行,并且值在此之间->'

['1', '4', '0']

CSV文件如下所示:

1,4,0
0,1,1
1,1,0
0,1,1
1,1,0
0,3,1
1,1,0
0,3,1
1,1,0

我希望得到这样的数组:

[[1,4,0],
 [0,1,1],
 [1,1,0],
 [0,1,1],
 [1,1,0],
 [0,3,1],
 [1,1,0],
 [0,3,1],
 [1,1,0]]

我在做什么错了?

编辑:

使用df.values可以给我这个:

[[0. 1. 1.]
 [1. 1. 0.]
 [0. 1. 1.]
 ...
 [1. 1. 0.]
 [0. 1. 1.]
 [1. 3. 0.]]

但这似乎并不正确,因为第一行必须为[1,4,0​​]。 我还需要一个->,<-作为分隔符

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

无需循环:.values将返回一个矩阵

url="https://www.test.com/csv.php"
dataset = requests.get(url, verify=False).content
df = pd.read_csv(io.StringIO(dataset.decode('utf-8')), header=None, sep=',')
data=df.values

答案 2 :(得分:0)

当您从.csv文件读取时,默认情况下,第一行被视为标题行。您需要指定不是。因此,在String[] paragraphs = content.split(mParagraphRegex); 中添加header=None。像这样:

read_csv

此外,以下是获得所需输出的一种方法:

df = pd.read_csv(io.StringIO(dataset.decode('utf-8')), header=None)