我想使用matplotlib在Python中保存和绘制某些列。列的参数将从cmdline获得,因此我必须使用sys。argv来获取它们。以下是我目前拥有的:
编辑:我还应该提到,列号可以根据用户选择的内容而变化。例如,它们可以只执行列1、2
或列1
。
with open('./P14_data.csv', 'rb') as csvfile:
data = csv.reader(csvfile, delimiter=';')
cols = [index for index in sys.argv[1:]]
#I want to extract the columns corresponding to cols
for col in cols:
x[col] = [rows for rows in data]
print x
但这将返回一个空列表[]。
至于输出,我想将每一列绘制为一维数组。例如,使用表单的csv文件:
1 5
1 3
0 2
0 3
1 1
1 3
如果用户输入1,我希望我的代码在数组中只保存一列变量:
data=[[1,1,0,0,…]
plt.plot(数据)
我知道熊猫是一个有效的选择,但我喜欢先这样学习。谢谢!
你可以试试这样的东西:
#!/usr/bin/env python3
import csv
with open('./P14_data.csv', newline='') as csvfile:
data = csv.reader(csvfile, delimiter=';')
x = [rows for rows in data]
transposed = list(zip(*x))
print(transposed)
或者更简单:
#!/usr/bin/env python3
import csv
with open('./P14_data.csv', newline='') as csvfile:
data = csv.reader(csvfile, delimiter=';')
transposed = list(zip(*data))
print(transposed)
要点:
下面是一种将标题和数据保存在单独数组中的方法。为了得到每个列,我们采用数据数组的转置,并选择我们感兴趣的列。
以下是data.csv:
index,value1,value2
0,10,20
1,12,18
2,5,6
3,9,10
4,11,8
代码如下:
import matplotlib.pyplot as plt
import numpy as np
import csv
with open('data.csv','r') as csvfile:
r = csv.reader(csvfile, delimiter=',')
data = [i for i in r]
headings = data.pop(0)
data = np.array([[np.float(j) for j in i] for i in data])
c1 = data.T[1]
c2 = data.T[2]
fig, ax = plt.subplots(1)
ax.plot(c1, label=headings[1])
ax.plot(c2, label=headings[2])
ax.legend()
fig.show()
你可以得到行中的第一列
with open('./P14_data.csv', 'rb') as csvfile:
data = csv.reader(csvfile, delimiter=';')
included_cols = [1,2,3]
x = [[rows[0]] for rows in data]
x1 = [[row[0].split(',')[0] for row in x]]
x2 = [[row[0].split(',')[1] for row in x]]
x3 = [[row[0].split(',')[2] for row in x]]
print x1
# [['4', '7', '3', '3']]
print x2
# [['9', '11', '5', '6']]
print x3
# [['5', '4', '2', '3']]
本文向大家介绍如何将Python词典保存为CSV文件?,包括了如何将Python词典保存为CSV文件?的使用技巧和注意事项,需要的朋友参考一下 CSV(逗号分隔值)是最常见的文件格式,许多平台和应用程序都广泛支持该格式。 使用Python标准库中的csv模块。最简单的方法是在open()函数的帮助下以“ w”模式打开一个csv文件,并以逗号分隔的形式写入键值对。 csv模块包含DictWriter
我在列表中有一个csv文件路径名列表,我正在尝试将它们保存为数据框。我该怎么做? 问题是它只打印。但我不知道如何保存。我想将所有数据框另存为变量,最好是它们的文件名。
我有一个熊猫数据框,有4行4列-这里是一个简单的版本: 我想做的是把它转换成一个2*8的数据帧,每个数组都有B、C和D——所以它看起来像这样: 在阅读熊猫文档时,我尝试了以下方法: 但是给了我一个错误,我无法识别源(以 DataError:没有要聚合的数字类型 ) 接下来,我想根据一个值分割数据帧,但我认为.groupby命令可能会处理它
我想从多个(100秒)CSV文件中读取特定列,以创建新的CSV文件。列标题将使用提取列的源文件名重命名。我已经为此编写了一些代码行,但是,在没有扩展名的情况下,我无法有效地重命名列标题(请参阅附件)。我会感谢你的帮助。谢谢。
我有一些代码可以读取一个拼花文件,然后显示它,就像这样: 这工作正常,但我想从输出创建一个CSV文件,即: 我希望创建一个CSV文件,其中包含列标题、逗号分隔的数据和数据。这样地: 我纠结于如何将拼花文件中的结果转换为CSV文件。你能帮助我吗?
我想问一下,如何从excel文件中复制某些类似的数据行,并根据特定的列名保存到另一个excel文件中?我想根据第1列找到类似的单词,即“name”(输入文件中有3列,分别是name、number和number),然后将整行复制到另一个excel文件中。接下来,我还希望在缺少的行上添加'zzzz | 0 | 0',使行的数量相同。 最终,将有3个不同的excel文件。所有文件都有相同数量的行,在这种