#python #pandas #dataframe #csv
Вопрос:
У меня есть очень большой CSV-файл, в котором я создаю URL-адрес, используя данные из одного столбца [c], и обновляю соответствующую ячейку столбца [f] новой информацией. Хотя я много программирую на Python, я не так часто использую Панд, поэтому я не уверен, где решить эту проблему.
F-это конечный результат, поэтому я использую столбец C в качестве имени изображения, URL-адрес тот же.
| c | f |
| ------- | -------------------------- |
| 2134 | http://url.com/2134.jpg |
| 3e32 | http://url.com/3e32.jpg |
| jhknh | http://url.com/jhknh.jpg |
| 12.12.3 | http://url.com/12.12.3.jpg |
Я искал, но не смог найти осуществимого решения. Я знаю, что мне, вероятно, пришлось бы использовать chunksize
для этого, так как может быть более 20000 записей.
Любая помощь в этом будет весьма признательна. Я посмотрел и попробовал несколько вещей, но я не могу придумать решение.
Заранее спасибо
~ E
Комментарии:
1. У F есть старый URL-адрес, который я могу удалить перед любым обновлением.
2. @ Michael Szczesny URL-адрес будет жестко закодирован в моем скрипте python, поэтому единственной переменной будет имя изображения, которое будет исходить из столбца C. Так что `
df = pd.read_csv('yourdatafile.csv') df['f'] = 'http://url.com/' df.c '.jpg' df
Выход
c f 0 2134 http://url.com/2134.jpg 1 3e32 http://url.com/3e32.jpg 2 jhnkhk http://url.com/jhnkhk.jpg 3 12.12.1 http://url.com/12.12.1.jpg
Если ваши записи не помещаются в памяти, вы можете разбить свои данные на фрагменты и добавить каждый фрагмент в новый файл.
header = True for chunk in pd.read_csv('yourdatafile.csv', chunksize=1000): chunk['f'] = 'http://newurl.com/' chunk.c '.jpg' chunk.to_csv('newdata.csv', mode='a ', index=False, header=header) header = False