У меня возникли проблемы при попытке прочитать CSV-файл и правильно проанализировать его с Python 2.7 с помощью панд.
Некоторые строки, которые терпят неудачу:
Europa, 2018-04-20,26948,15, Destino, -, CRU-159617-JUN-2018, Origen, Productos incidos, https://s3.amazonaws.com/cruceros-host/home/host-Cruceros.jpg,Crucero,06,https://www.host.com/cruceros/listado?regionId=7&startDate=2018-06-01&endDate=2018-07-01&adults=2&children=0&childrenAges=,23433,"Espana, Francia, Italia, Malta " Австралазия, 2018-05-01,39155,15, Destino, -, CRU-180907-JAN-2019, Origen, Productos incidos, https://s3.amazonaws.com/cruceros-host/home/host-Cruceros.jpg,Crucero,01," https://www.host.com/cruceros/listado?regionId=14&startDate=2019-01-01&endDate=2019-02-01&adults=2&children=0&childrenAges=&startPort=Sydney, Австралия ", 34048," Новая Зеландия "
Europa, 2018-04-20,26948,15, Destino, -, CRU-159617-JUN-2018, Origen, Productos incidos, https://s3.amazonaws.com/cruceros-host/home/host-Cruceros.jpg,Crucero,06,https://www.host.com/cruceros/listado?regionId=7&startDate=2018-06-01&endDate=2018-07-01&adults=2&children=0&childrenAges=,23433,"Espana, Francia, Italia, Malta "
Австралазия, 2018-05-01,39155,15, Destino, -, CRU-180907-JAN-2019, Origen, Productos incidos, https://s3.amazonaws.com/cruceros-host/home/host-Cruceros.jpg,Crucero,01," https://www.host.com/cruceros/listado?regionId=14&startDate=2019-01-01&endDate=2019-02-01&adults=2&children=0&childrenAges=&startPort=Sydney, Австралия ", 34048," Новая Зеландия "
код:
frame = pd.read_csv(filepath_or_buffer=raw_file)
- Изменить:
Проблема, которую я получаю, состоит в том, что я верну один столбец со строкой отверстия.
- Edit2:
Проблема заключалась в том, что Excel отредактировал некоторые строки случайно и добавил "в и и в некоторых строках. Теперь он работает правильно.
Кажется, вы не используете разделитель. Попробуйте с этим:
pd.read_csv(filepath_or_buffer=raw_file, sep=r',')
import pandas as pd df = pd.DataFrame({'a':[r'Europa,2018-04-20,26948,15,Destino,-,CRU-159617-JUN-2018,Origen,Productos incluidos,https://s3.amazonaws.com/cruceros-host/home/host-Cruceros.jpg,Crucero,06,https://www.host.com/cruceros/listado?regionId=7&startDate=2018-06-01&endDate=2018-07-01&adults=2&children=0&childrenAges=,23433,"Espana, Francia, Italia, Malta"', r'Australasia,2018-05-01,39155,15,Destino,-,CRU-180907-JAN-2019,Origen,Productos incluidos,https://s3.amazonaws.com/cruceros-host/home/host-Cruceros.jpg,Crucero,01,"https://www.host.com/cruceros/listado?regionId=14&startDate=2019-01-01&endDate=2019-02-01&adults=2&children=0&childrenAges=&startPort=Sydney, Australia",34048,"Nueva Zelanda "']}) df.a = df.a.str.split(',') for i in range(9): df['Col {0}'.format(i)]=df.a.apply(lambda x: x[i]) df['Col 10'] = df.a.apply(lambda x: ','.join(x[9:]))
Выход: