我有问题。
我想从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]。 我还需要一个->,<-作为分隔符
答案 0 :(得分:1)
根据pandas文档,迭代行应使用:
df.iterrows()
所示
答案 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)