尝试编写一个读取csv文件并打印x-y图的python脚本。我有一个csv文件,其中包含一些行和列的数据。我想为第一列和第二列绘制x-y图。这是我到目前为止所得到的......
import csv
def getColumn(filename, column):
results = csv.reader(open(filename), delimiter="\t")
return [result[column] for result in results]
x = getColumn("TableOne.csv",0)
y = getColumn("TableOne.csv",1)
plt.figure("X-Y Plot")
plt.xlabel("Site")
plt.ylabel("Average")
plt.plot(x,y)
...但它是按行读取我的csv文件,而不是列,它输出一堆混合数据而不是我想要的一个特定数据。有什么建议吗?
答案 0 :(得分:0)
查看zip
函数以及有关zip splats的一些答案。
您可以通过以下方式轻松完成此操作:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": [
{
"term": {
"category": "catname"
}
}
]
}
}
}
},
"post_filter": {
"bool": {
"must": [
{
"terms": { "type": [ "foo1", "foo2" ] }
},
{
"range": { "price": { "gte": 300, "lte": 600 } }
}
]
}
}
}
此处,In [1]: data = [['x1', 'y1'], ['x2', 'y2'], ['x3', 'y3']]
In [2]: zip(*data)
Out[2]: [('x1', 'x2', 'x3'), ('y1', 'y2', 'y3')]
将*data
解包为3个data
对列表。然后[x, y]
通过将每个列表的第一个元素分成一个组,将每个列表的第二个元素分成另一个组,将这些组合在一起,依此类推。由于每个列表只有2个元素,zip
将分别返回两个组,即x和y元素。
在您的情况下,请更改
zip(*data)