当前位置: 首页 > 知识库问答 >
问题:

如何保存某些列从csv文件作为Python中的变量?[重复]

方奕
2023-03-14

我想使用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(数据)

我知道熊猫是一个有效的选择,但我喜欢先这样学习。谢谢!


共有3个答案

燕正卿
2023-03-14

你可以试试这样的东西:

#!/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)

要点:

  • zip()
袁康裕
2023-03-14

下面是一种将标题和数据保存在单独数组中的方法。为了得到每个列,我们采用数据数组的转置,并选择我们感兴趣的列。

以下是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()
祁远
2023-03-14

你可以得到行中的第一列

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命令可能会处理它

  • 我想问一下,如何从excel文件中复制某些类似的数据行,并根据特定的列名保存到另一个excel文件中?我想根据第1列找到类似的单词,即“name”(输入文件中有3列,分别是name、number和number),然后将整行复制到另一个excel文件中。接下来,我还希望在缺少的行上添加'zzzz | 0 | 0',使行的数量相同。 最终,将有3个不同的excel文件。所有文件都有相同数量的行,在这种

  • 我有一些代码可以读取一个拼花文件,然后显示它,就像这样: 这工作正常,但我想从输出创建一个CSV文件,即: 我希望创建一个CSV文件,其中包含列标题、逗号分隔的数据和数据。这样地: 我纠结于如何将拼花文件中的结果转换为CSV文件。你能帮助我吗?

  • 我想从多个(100秒)CSV文件中读取特定列,以创建新的CSV文件。列标题将使用提取列的源文件名重命名。我已经为此编写了一些代码行,但是,在没有扩展名的情况下,我无法有效地重命名列标题(请参阅附件)。我会感谢你的帮助。谢谢。