jezrael всегда быстрее, но я пытаюсь изучить панды здесь, поэтому вот моя попытка;)
Я использую метод передискретизации: вы хотите заполнить пробелы путем перестановки данных к интервалу годового запуска («AS»)
Сначала преобразуйте столбец «Год» в pandas datetime и установите его как index
df.Year = pd.to_datetime(df.Year, format="%Y")
df = df.set_index('Year')
. Затем я обрабатываю каждый уникальный идентификатор отдельно и создаю новый выход DataFrame
IDs = df.ID.unique()
newDf = pd.DataFrame()
Цикл обработки
for ID in IDs:
# resample to annual start (although end would also be OK)
temp = df[df.ID==ID].resample('AS').sum()
# fill in the blanks, now 0, with the wanted data
temp[temp.ID==0] = pd.DataFrame({'ID':ID, 'Data1':'', 'Data2':''},
index=temp[temp.ID==0].index)
# concat this new data with the output frame
newDf = pd.concat([newDf, temp])
Наконец, очистите вывод, удалив индекс и преобразовывая дату-время обратно в строку
newDf = newDf.reset_index()
newDf.Year = newDf.Year.dt.strftime('%Y')
Результат:
Year ID Data1 Data2
0 2010 345 3 2
1 2011 345 1 4
2 2012 345 5 2
3 2013 345 3 1
4 2014 345 3 1
5 2015 345 3 1
6 2016 345 3 1
7 2010 123 1 1
8 2011 123
9 2012 123 0 2
10 2013 123
11 2014 123
12 2015 123
13 2016 123 0 2
Я окончательно определил, что эта комбинация работает:
{
"location": "global",
"properties": {
"productType": "StandardDomainValidatedSsl",
"autoRenew": true,
"distinguishedName":"CN=mysubdomain.mydomain.com"
}
}
Поле csr, как оказалось, не нужно; один возвращается в результате выполнения этого вызова REST. И это только первый шаг в процессе создания сертификата. На данный момент запрос находится в состоянии ожидания и все еще нуждается в проверке.
CSR выглядит примерно так:
-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDzANBgNV
BAcMBkxpbmRvbjEWMBQGA1UECgwNRGlnaUNlcnQgSW5jLjERMA8GA1UECwwIRGln
aUNlcnQxHTAbBgNVBAMMFGV4YW1wbGUuZGlnaWNlcnQuY29tMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA8+To7d+2kPWeBv/orU3LVbJwDrSQbeKamCmo
wp5bqDxIwV20zqRb7APUOKYoVEFFOEQs6T6gImnIolhbiH6m4zgZ/CPvWBOkZc+c
1Po2EmvBz+AD5sBdT5kzGQA6NbWyZGldxRthNLOs1efOhdnWFuhI162qmcflgpiI
WDuwq4C9f+YkeJhNn9dF5+owm8cOQmDrV8NNdiTqin8q3qYAHHJRW28glJUCZkTZ
wIaSR6crBQ8TbYNE0dc+Caa3DOIkz1EOsHWzTx+n0zKfqcbgXi4DJx+C1bjptYPR
BPZL8DAeWuA8ebudVT44yEp82G96/Ggcf7F33xMxe0yc+Xa6owIDAQABoAAwDQYJ
KoZIhvcNAQEFBQADggEBAB0kcrFccSmFDmxox0Ne01UIqSsDqHgL+XmHTXJwre6D
hJSZwbvEtOK0G3+dr4Fs11WuUNt5qcLsx5a8uk4G6AKHMzuhLsJ7XZjgmQXGECpY
Q4mC3yT3ZoCGpIXbw+iP3lmEEXgaQL0Tx5LFl/okKbKYwIqNiyKWOMj7ZR/wxWg/
ZDGRs55xuoeLDJ/ZRFf9bI+IaCUd1YrfYcHIl3G87Av+r49YVwqRDT0VDV7uLgqn
29XI1PpVUNCPQGn9p/eX6Qo7vpDaPybRtA2R7XLKjQaF9oXWeCUqy1hvJac9QFO2
97Ob1alpHPoZ7mWiEuJwjBPii6a9M9G30nUo39lBi1w=
-----END CERTIFICATE REQUEST-----