繁体   English   中英

如何从每行逗号之间提取数字是 csv 文件

[英]How to extract numbers from between commas on each row is csv file

我需要弄清楚如何将 CSV 文件中行的 3 个值分离到新列表中,然后将 plot 放到图表上。 我已经将每一行分隔成一个列表,但我需要对每个逗号分隔值进行分类的新列表。

我已经将每一行分成一个列表,如下所示:

import csv

with open('Lottery_Powerball_Winning_Numbers__Beginning_2010.csv', 'r') as readObj:
    heading = next(readObj)
    csvReader = csv.reader(readObj)
    listOfCSV = list(csvReader)
    print(listOfCSV)

output 在这里转述(由于字符限制,无法输入完整的 output。)

['9/26/20', '11 21 27 36 62 24', '3'], ['9/30/20', '14 18 36 49 67 18', '2'], ['10/3/20', '18 31 36 43 47 20', '2'], ['10/7/20', '06 24 30 53 56 19', '2'], ['10/10/20', '05 18 23 40 50 18', '3']

您可以制作三个新列表并阅读您之前获得的行列表。

csv = [['9/26/20', '11 21 27 36 62 24', '3'], ['9/30/20', '14 18 36 49 67 18', '2'], ['10/3/20', '18 31 36 43 47 20', '2'], ['10/7/20', '06 24 30 53 56 19', '2'], ['10/10/20', '05 18 23 40 50 18', '3']]

date = []
number = []
end = []

for row in csv:
  date.append(row[0])
  number.append(row[1])
  end.append(row[2])

print(date)
print(number)
print(end)

我会生产

['9/26/20', '9/30/20', '10/3/20', '10/7/20', '10/10/20']
['11 21 27 36 62 24', '14 18 36 49 67 18', '18 31 36 43 47 20', '06 24 30 53 56 19', '05 18 23 40 50 18']
['3', '2', '2', '2', '3']

代码是https://onecompiler.com/python/3yvns443z

如果您构建一个字典,那么这将使按日期访问值变得容易。 例如,假设 CSV 文件包含以下数据:

Date, Numbers, Multiplier
9/26/20, 11 21 27 36 62 24, 3
9/30/20, 14 18 36 49 67 18, 2
10/3/20, 18 31 36 43 47 20, 2
10/7/20, 06 24 30 53 56 19, 2
10/10/20, 05 18 23 40 50 18, 3

...然后...

import json # Only needed to prettify the output

data = dict()

with open('Lottery_Powerball_Winning_Numbers__Beginning_2010.csv') as csv:
    next(csv) # skip column header
    for line in csv:
        try: # use try/ except in case any line does not contain exactly 3 tokens
            date, numbers, multiplier = line.split(',')
            data[date] = {'numbers': list(map(int, numbers.split())), 'multiplier': int(multiplier)}
        except ValueError:
            pass

print(json.dumps(data, indent=2))

Output:

{
  "9/26/20": {
    "numbers": [
      11,
      21,
      27,
      36,
      62,
      24
    ],
    "multiplier": 3
  },
  "9/30/20": {
    "numbers": [
      14,
      18,
      36,
      49,
      67,
      18
    ],
    "multiplier": 2
  },
  "10/3/20": {
    "numbers": [
      18,
      31,
      36,
      43,
      47,
      20
    ],
    "multiplier": 2
  },
  "10/7/20": {
    "numbers": [
      6,
      24,
      30,
      53,
      56,
      19
    ],
    "multiplier": 2
  },
  "10/10/20": {
    "numbers": [
      5,
      18,
      23,
      40,
      50,
      18
    ],
    "multiplier": 3
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM