Взять столбец из файла csv и поместить его в список в python - PullRequest
0 голосов
/ 03 августа 2020

Мне нужно написать код в python, который берет столбец из файла csv и делает его списком. Вот мой код до сих пор.

import csv
from collections import defaultdict
columns = defaultdict(list)
with open('Team1_BoMInput.csv') as f:
    reader = csv.DictReader(f)
    for row in reader:
        for (k,v) in row.items():
            columns[k].append(v)

y = (columns['Quantity'])
x = (columns[('Actual Price')])

b = ['2', '2', '1', '1', '1', '1', '1', '1', '1', '2', '1', '1', '3', '4', '1', '1', '1', '8', '2', '2', '1', '1', '1', '1', '4', '1', '2', '2', '2', '1', '2', '2', '2', '1', '2', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '3', '2', '1', '1', '1']
a = ['$6.41', '$14.97', '$6.78', '$11.44', '$22.61', '$1.58', '$11.68', '$19.99', '$12.99', '$3.66', '$24.99', '$1.04', '$0.09', '$1.92', '$4.80', '$1.50', '$17.92', '$1.36', '$65.52', '$24.38', '$1.91', '$3.40', '$13.79', '$39.55', '$1.94', '$3.38', '$11.34', '$18.33', '$21.13', '$8.24', '$30.14', '$125.97', '$26.54', '$8.58', '$12.77', '$11.42', '$1.32', '$2.63', '$8.58', '$0.40', '$0.57', '$2.54', '$2.83', '$1.41', '$9.03', '$3.38', '$5.98', '$4.51', '$2.54', '$6.76', '$4.51', '$1.13', '$14.24']

for i in range(0, len(b)):
    b[i] = float(b[i])
print(b)
x = ([s.strip('$') for s in a])
for i in range(0, len(x)):
    x[i] = float(x[i])
print(x)

вместо того, чтобы иметь значения a и b, перечисленные в программе, я хочу, чтобы он взял столбец из файла csv и использовал его значения. Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 03 августа 2020

Я думаю, ваш код не запустится, пока вы не измените его на это:

import csv
from collections import defaultdict
columns = defaultdict(list)
with open('Team1_BoMInput.csv') as f:
    reader = csv.DictReader(f)
    for row in reader:
        for (k,v) in row.items():
            if k not in columns:
                columns[k] = list()
            columns[k].append(v)
    # Rest of your code

0 голосов
/ 03 августа 2020

Попробуйте следующее:

import pandas as pd
df=pd.read_csv("Team1_BoMInput.csv")

y=list(df['Quantity'])
x=list(df['Actual Price'])
0 голосов
/ 03 августа 2020

См. Приведенный ниже код, используя библиотеку pandas для более быстрых вычислений и меньшего кода

import pandas as pd
df=pd.read_csv("Team1_BoMInput.csv")
quantity_list_value=list(df.loc[:,"Quantity"].astype(float).values)
price_list_value=list(df.loc[:,"Actual Price"].apply(lambda x: x.replace("$","")).astype(float).values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...