Постепенное ухудшение вне домена веб-приложений: насколько значительный проблема - это?

Метод 1

Сначала примените np.array, чтобы получить массивы, затем примените pd.Series, чтобы в основном повернуть значения каждого столбца в строку, чтобы мы могли использовать стек для преобразования. После этого мы используем stack и сохраняем NaN.

В конце мы concat все кадры данных до одного окончательного кадра данных по axis=1

cols = ['valueA', 'valueB']
dfs = []
for col in cols:
    dfs.append(df.groupby('mIndex')[col].apply(np.array)
                                        .apply(pd.Series)
                                        .stack(dropna=False).reset_index(level=0)
                                                            .rename({0:col}, axis=1))

df_final = pd.concat(dfs, axis=1).reset_index(drop=True)

print(df_final)
   mIndex  valueA  mIndex  valueB
0       1   111.0       1    10.0
1       1   112.0       1    20.0
2       1     NaN       1     NaN
3       2   222.0       2    30.0
4       2   221.0       2    40.0
5       2   223.0       2    50.0
6       3   333.0       3    60.0
7       3     NaN       3     NaN
8       3     NaN       3     NaN

Метод 2

мы можем получить доступ к groupby элементам

df= pd.concat([
       d.reset_index(drop=True).reindex(range(3))
       for n, d in df.groupby('mIndex')
], ignore_index=True)

print(df)
   mIndex  valueA  valueB
0     1.0   111.0    10.0
1     1.0   112.0    20.0
2     NaN     NaN     NaN
3     2.0   222.0    30.0
4     2.0   221.0    40.0
5     2.0   223.0    50.0
6     3.0   333.0    60.0
7     NaN     NaN     NaN
8     NaN     NaN     NaN
6
задан Jon Cram 20 February 2009 в 13:51
поделиться

3 ответа

Настольные приложения не имеют тех же проблемных веб-приложений, имеют в этом отношении. Они обычно заставляются работать на одной четко определенной платформе.

Это могло бы измениться в будущем. Вычисления перемещаются с рабочих столов на мобильные телефоны и ноутбуки меньшего размера. Настольные приложения должны будут работать на более широком множестве платформ в будущем. Это могло бы вызвать проблемы, потому что большинство платформ, которые мы используем для разработки настольных приложений, обрабатывает это еще хуже, чем платформа для веб-приложений.

1
ответ дан 17 December 2019 в 20:35
поделиться

В приложении и области операционной системы (OS), обычно инвертируется проблема. Это - ОС, которая обрабатывает всю сложность поддержания совместимости. С другой стороны, приложение обычно диктует минимальную версию ОС.

Другое место, где приложения начинают видеть эту проблему, является миром Java и до меньшего градуса весь другой так называемый сценарий langages что работа над много ОС.

0
ответ дан 17 December 2019 в 20:35
поделиться

Я не могу вообразить настольное приложение, стоящее перед таким различием в операционной среде.

Настольные приложения должны иметь дело с различием, только другого вида. Видеокарты в играх являются хорошим примером этого: Вы хотите достойную поддержку основных клиентов, но Ваш высокопроизводительный клиент с новейшей видеокартой захочет выполнение за их деньги. При вводе области обработки на GPU и управления памятью на карте у Вас будет причина достаточно для проклятия различия в операционных средах.

Вы также обычно имеете дело с большим количеством процессора и интенсивно использующего память программного обеспечения, чем веб-приложение, таким образом, необходимо будет принять это во внимание также. И я даже не говорю об удобстве использования меж-ОС (который многие дескриптор программного обеспечения, установленного на компьютере очень корректно).

Конечно, ничто не сохраняет издателя программного обеспечения, установленного на компьютере для наложения строгих критериев на среду. Это - просто вопрос бизнеса. Но ничто не вынуждает Вас поддерживать неосновные браузеры любой (и большинство веб-приложений действительно поддерживает Lynx?!?).

1
ответ дан 17 December 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: