2014-12-17 6 views
1

У меня возникли проблемы с передачей разделенных пробелов для stop_headsign назад к stop_times для вывода в CSV. В качестве альтернативы, есть ли способ .rstrip() весь столбец stop_headsign?Удалить пробелы из CSV

Here является stop_times.txt Gist.

Here является ссылкой на pandas rstrip.

Ниже мой код:

import pandas as pd 

stop_times = pd.read_csv('csv/stop_times.txt') 

for x in stop_times['stop_headsign']: 
    if type(x) == str: 
     x = x.rstrip() 
     # figure out how to pass store new value 
    if type(x) == float: 
     pass 

stop_times['distance'] = 0 

stop_times.to_csv('csv/stop_times.csv', index=False) 

Ниже то, что CSV-вывод показывает:

trip_id,arrival_time,departure_time,stop_id,stop_sequence,pickup_type,drop_off_type,stop_headsign,distance 
568036,,,00382,26,0,0,78 UO            ,0 
568036,,,00396,7,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00398,8,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00400,9,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00404,10,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00407,11,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00412,13,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00413,14,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00416,15,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00418,16,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00419,17,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00422,18,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00423,19,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00425,20,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,00427,21,0,0,78 UO <> 78 via 18th AVE       ,0 
568036,,,01006,2,0,0,78 UO <> 78 via 18th AVE       ,0 
+0

Куда вы помещаете код «написать в CSV-файл»? Как я вижу в вашем коде, в цикле вы просто присваиваете значение x и ничего не делаете. –

+0

Я пробовал различные методы, поэтому здесь я просто хотел опросить, чтобы найти лучший способ передать x обратно. Вот почему я не включил задание. Кроме того, поскольку это огромный набор данных, есть некоторые методы назначения, которые я пробовал, и это заняло слишком много времени. –

+0

Попробуйте прочитать весь файл и поместить его в список, затем вы можете перебрать список и удалить данные. Затем вы можете вернуться к новому файлу. Посмотрите на это: http://stackoverflow.com/questions/18776370/converting-a-csv-file-into-a-list-of-tuples-with-python –

ответ

3

Панда имеет удобное "расширение" собственность на Series объектов для этого:

stop_times["stop_headsign"] = stop_times["stop_headsign"].str.rstrip() 

На самом деле, ваша ссылка указывает на это, .str имеет тип StringMethods.

В документации по основанию есть раздел Vectorized String Methods, который ссылается на Working with Text Data.

+0

ОК, спасибо. Я не был уверен, как назвать 'strip()', учитывая то, что указано в документации. возможно, я пропустил некоторые важные документы о пандах на этом пути. –

Смежные вопросы