Python-从url获取CSV内容并解析为数组
我有个问题 我想从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
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,请确认上述答案是否适用于您?