Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-从url获取CSV内容并解析为数组_Python_Arrays_Pandas_Url - Fatal编程技术网

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

Python-从url获取CSV内容并解析为数组,python,arrays,pandas,url,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

我有个问题

我想从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]]
我希望得到这样的阵列:

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]。
我还需要一个->,无需循环:
。值将返回一个矩阵

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

根据pandas文档,要迭代行,应使用:

df.iterrows()

所示,当您从.csv文件中读取时,默认情况下,第一行被视为标题行。您需要指定它不是。因此,在
read\u csv
中添加
header=None
。像这样:

df = pd.read_csv(io.StringIO(dataset.decode('utf-8')), header=None)
此外,以下是获得所需输出的方法之一:

data=[]
for r1, r2, r3 in df.values:
    data.append([r1,r2,r3])

这不是我想要的,我需要它是一个带有[[]@Vreesie的数组,可能你需要禁用头。默认的分隔符是逗号添加您的代码和值似乎是正确的,但仍然用点分隔,而不是用逗号分隔@请打印数据集和df,请确认上述答案是否适用于您?