чтение последнего столбца из фрейма создает проблему - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь прочитать последний столбец в Dataframe с именем столбца, но его ошибка отсутствует
Ниже приведен мой код

f = open('E:\Downloads\Goods&Transit.csv', 'rU')
readfile = csv.reader(f, delimiter = ';')
input_file = [list(line) for line in readfile]
headers = input_file.pop(0)
df = pd.DataFrame(list(input_file), columns= headers)
print df['Receivables']
f.close()

Когда я печатаю столбец Receivables - ошибка его ключа метания (но для этого естьколонка)

Мой CSV-файл
enter image description here

печать заголовков:

  ['PO Number', 'PO Type', 'Location', 'Vendor Number', 'Product ID', 'Planned Delivery Date', 'Receivables

CSV-файл в текстовом формате
POНомер; Тип заказа на поставку; Местоположение; Номер поставщика; Идентификатор продукта; Запланированная дата поставки; Дебиторская задолженность
7000002174; DP06; 1006; 0000010055; P26220C00000E10; 31.05.2014; 205.000-
7000001994; DP06; 1006; 0000010662; P60514X00000010;06.04.2014; 8000.000
7600000238; IM06; 1006; 0000020257; R87M45X06000020; 30.04.2014; 4350.000
7600000238; IM06; 1006; 0000020257; R87M47F06000020; 15.04.2014; 2700.000

Есть одинцитата для колонки Receivables - то, что вызывает любую проблему
Любая помощь будет высоко ценится

1 Ответ

0 голосов
/ 25 апреля 2018

Я бы порекомендовал использовать csv-ридер Pandas напрямую:

filename = 'E:\Downloads\Goods&Transit.csv'
pd.read_csv(filename, sep= ';')

Я должен признать: при использовании пути через open и списков и списков списков я тоже получаю ошибки ...

Но простой способ панд работает как очарование:

s = 'PO Number;PO Type;Location;Vendor Number;Product ID;Planned Delivery Date;Receivables\n 7000002174;DP06;1006;0000010055;P26220C00000E10;31.05.2014;205.000-\n7000001994;DP06;1006;0000010662;P60514X00000010;06.04.2014;8000.000\n 7600000238;IM06;1006;0000020257;R87M45X06000020;30.04.2014;4350.000\n 7600000238;IM06;1006;0000020257;R87M47F06000020;15.04.2014;2700.000'

from io import StringIO
import pandas as pd

df = pd.read_csv(StringIO(s), sep=';')

df.head()
Out[1]: 
    PO Number PO Type  Location  Vendor Number       Product ID  \
0  7000002174    DP06      1006          10055  P26220C00000E10   
1  7000001994    DP06      1006          10662  P60514X00000010   
2  7600000238    IM06      1006          20257  R87M45X06000020   
3  7600000238    IM06      1006          20257  R87M47F06000020   

  Planned Delivery Date Receivables  
0            31.05.2014    205.000-  
1            06.04.2014    8000.000  
2            30.04.2014    4350.000  
3            15.04.2014    2700.000  

df.columns
Out[2]: 
Index(['PO Number', 'PO Type', 'Location', 'Vendor Number', 'Product ID',
   'Planned Delivery Date', 'Receivables'],
  dtype='object')

df['Receivables']
Out[3]: 
0    205.000-
1    8000.000
2    4350.000
3    2700.000
Name: Receivables, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...