【问题标题】:Python Assigning CSV File to a VariablePython将CSV文件分配给变量
【发布时间】:2015-07-21 03:47:31
【问题描述】:

我的任务是导入一个 CSV 文件并将其制成一个数组,我已经完成了。现在我的任务是将数据分配给一个变量——这可能吗?例如,我将如何通过输入 myVariableName[1] 来访问数组的第二列?

import csv
import numpy as np
f = open("Test.csv")
csv_f = csv.reader(f)
for row in csv_f:
    print(np.array(row))
f.close()

【问题讨论】:

  • 您可能想看看np.loadtxt 或pandas.read_csv
  • 提示,您已经为变量名分配了其他内容。例如f = open("Test.csv") 将open 返回的文件对象分配给变量f。你又用csv_f 做了一遍。从这里开始,应该不难弄清楚如何将变量名分配给代码中的任何特定对象...
  • 我尝试分配一个变量,但是是否也可以包含“for”语句?

标签: python arrays csv


【解决方案1】:

您可以使用numpy.loadtxt()。

a.csv:

1,2,3
4,5,6
7,8,9

代码:

import numpy as np

matrix = np.loadtxt(open("a.csv","rb"),delimiter=",")
print(matrix[:,1])
# prints [ 2.  5.  8.]

【讨论】:

    【解决方案2】:

    创建一个列表,在您处理 CSV 文件中的每一行时,可以将第 2 列中的项目附加到该列表中。以下代码将包含变量 column_2 中第 2 列中的项目:

    import csv
    
    column_2 = []
    f = open("Test.csv")
    csv_f = csv.reader(f)
    for row in csv_f:
        column_2.append(row[1])
    f.close()
    print column_2
    

    您可以用列表推导替换所有这些代码:

    import csv
    
    column_idx = 1
    with open('Test.csv') as f:
        column_2 = [row[column_idx] for row in csv.reader(f)]
    print column_2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 2015-04-27
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-30
      相关资源
      最近更新 更多