Предположим, у меня есть CSV-файл с двумя столбцами, один с данными (число) и один с датой в формате '193011'.
У меня есть скрипт / процесс, который генерирует новые данные в форме [data, date]
. Я хотел бы код, который делает следующее.
Если date
еще не появляется в CSV, то новые данные должны быть добавлены в конец CSV. Это легко, и я знаю, как это сделать.
Если в csv появляется date
, тогда я хочу знать это (я уже знаю, как это сделать), и я хотел бы перезаписать данныев строке в CSV, который содержит эту дату. Я не знаю, как сделать эту последнюю часть.
Пока я работаю только с пакетом csv, но я понимаю, что это то, для чего Панды могут быть очень полезны. Открыто для ответов с пандами и без них.
Кроме того, я знаю, что один из подходов, который может сработать, - это просто переписывать csv при каждом добавлении данных, обрабатывая любые строки с тем же значением, что и новое значение date
специально, но это не кажется мне хорошим решением.
Edit 1
Вот данные. В основном я делаю эксперимент в определенную дату, и эксперимент выводит данные в файл с именем TEK ####. Csv. Имя файла данных и дата записываются. Затем файл данных обрабатывается для вывода числовых значений в категориях finesse_mean
и finesse_err
. По разным причинам данные будут обрабатываться повторно, и результатом повторной обработки должно быть перезапись старых данных или добавление к полному набору данных.
mirror_1,mirror_2,finesse_mean,finesse_err,cav_length (mm),date,filename,notes,uid
1,4,12784,None,10,191001,TEK0000.csv,,191001TEK0000.csv
1,4,10058,None,10,191001,TEK0001.csv,,191001TEK0001.csv
1,4,21288,None,8,19`1001,TEK0003.csv,,191001TEK0003.csv
1,4,25843,None,7,191001,TEK0002.csv,,191001TEK0002.csv
5,13,43297,579,3.6,191015,TEK0000.csv,,191015TEK0000.csv
14,15,54531,650,4.75,191022,TEK0000.csv,,191022TEK0000.csv
14,15,80444,542,8.45,191022,TEK0001.csv,,191022TEK0001.csv
14,15,43899,61,8.45,191022,TEK0002.csv,,191022TEK0002.csv
14,15,73906,220,8.45,191022,TEK0003.csv,,191022TEK0003.csv
14,15,83946,306,6,191024,TEK0001.csv,,191024TEK0001.csv
14,15,73607,605,7.85,191024,TEK0002.csv,,191024TEK0002.csv
14,15,84402,611,6,191024,TEK0003.csv,,191024TEK0003.csv
13,15,49706,515,6.26,191029,TEK0000.csv,,191029TEK0000.csv
13,15,65547,403,6.26,191029,TEK0001.csv,,191029TEK0001.csv
13,15,63117,306,6.26,191029,TEK0002.csv,,191029TEK0002.csv
14,15,81584,410,6.14,191101,TEK0000.csv,,191101TEK0000.csv
14,16,19782,269,4.85,191101,TEK0001.csv,,191101TEK0001.csv
14,16,18348,130,5.2,191101,TEK0002.csv,,191101TEK0002.csv
14,15,17038,97,12.75,191104,TEK0000.csv,,191104TEK0000.csv
14,15,16620,43,16.8,191104,TEK0001.csv,,191104TEK0001.csv
14,15,13646,49,18.23,191104,TEK0002.csv,,191104TEK0002.csv
3,15,83146,345,4.15,191107,TEK0000.csv,,191107TEK0000.csv
3,15,69347,477,12,191107,TEK0001.csv,,191107TEK0001.csv
3,15,68372,506,13.75,191107,TEK0002.csv,,191107TEK0002.csv
3,15,67950,582,14.4,191107,TEK0003.csv,,191107TEK0003.csv
3,15,66644,564,15,191107,TEK0004.csv,,191107TEK0004.csv
3,9,22883,197,5.5,191108,TEK0000.csv,,191108TEK0000.csv
3,9,21544,274,8.35,191108,TEK0001.csv,,191108TEK0001.csv
1,9,11474,159,7,191108,TEK0002.csv,,191108TEK0002.csv
3,9,21163,413,7.25,191111,TEK0000.csv,,191111TEK0000.csv
1,8,16949,107,4,191115,TEK0000.csv,,191115TEK0000.csv
1,8,9711,77,9,191115,TEK0001.csv,,191115TEK0001.csv
27,28,44092,481,20,191115,TEK0002.csv,,191115TEK0002.csv
27,28,39812,351,20,191115,TEK0003.csv,,191115TEK0003.csv
27,28,69046,722,20,191115,TEK0004.csv,After Cleaning back mirror,191115TEK0004.csv
27,28,82591,291,20,191115,TEK0005.csv,After Cleaning front mirror,191115TEK0005.csv
27,28,97631,205,12,191119,TEK0004.csv,,191119TEK0004.csv
27,28,99560,408,11,191120,TEK0000.csv,,191120TEK0000.csv
27,28,98735,275,11,191120,TEK0001.csv,,191120TEK0001.csv
27,28,98141,184,11,191120,TEK0002.csv,,191120TEK0002.csv
27,28,103222,222,11,191120,TEK0003.csv,,191120TEK0003.csv
27,28,96684,463,11,191120,TEK0004.csv,,191120TEK0004.csv
27,28,102335,313,11,191120,TEK0005.csv,,191120TEK0005.csv
27,28,102698,311,11,191120,TEK0006.csv,,191120TEK0006.csv
1,8,14469,69,8,191121,TEK0000.csv,,191121TEK0000.csv
1,8,16286,128,5,191121,TEK0001.csv,,191121TEK0001.csv
1,8,16143,64,5,191121,TEK0004.csv,,191121TEK0004.csv
1,7,14272,76,4,191121,TEK0006.csv,,191121TEK0006.csv
1,7,12275,80,4,191121,TEK0007.csv,,191121TEK0007.csv
3,9,13582,61,4.8,191121,TEK0008.csv,,191121TEK0008.csv
14,15,30502,174,5,191122,TEK0000.csv,,191122TEK0000.csv
14,15,44951,152,5,191122,TEK0001.csv,,191122TEK0001.csv
14,15,56137,111,6.7,191122,TEK0002.csv,,191122TEK0002.csv
3,9,14177,55,7,191122,TEK0003.csv,,191122TEK0003.csv
27,28,103871,160,7.75,191122,TEK0004.csv,,191122TEK0004.csv
28,2,54449,1069,3,191122,TEK0005.csv,,191122TEK0005.csv
3,28,79357,653,5.00,191126,TEK0000.csv,,191126TEK0000.csv
9,28,10887,55,4.50,191126,TEK0001.csv,,191126TEK0001.csv
9,28,11435,45,4.50,191126,TEK0002.csv,,191126TEK0002.csv
9,28,21184,70,2.40,191126,TEK0003.csv,,191126TEK0003.csv
3,9,14586,181,4.40,191126,TEK0005.csv,,191126TEK0005.csv
3,9,19954,127,9.80,191126,TEK0006.csv,,191126TEK0006.csv
У меня есть код, который может выполнять то, что я ищутеперь, который я опубликую здесь в ближайшее время.
Предположим, у меня есть новый бит данных в форме:
3, 28, 21352, 122, 7.5, 191127, TEK0001,,191127TEK0001.csv
или старые исправленные данные в форме
3,9,19954,127,9.80,191126,TEK0006.csv,,191126TEK0006.csv