Сбой при обновлении Android

Несмотря на то, что на этот квест был дан ответ, у меня есть более быстрое решение:

df.groups.apply(lambda x: pd.Series([1] * len(x), index=x)).fillna(0, downcast='infer')

И если у вас есть пустые группы или NaN, вы можете просто:

df.loc[df.groups.str.len() > 0].apply(lambda x: pd.Series([1] * len(x), index=x)).fillna(0, downcast='infer')

Как это работает

Внутри лямбда x - ваш список, например ['a', 'b', 'c']. Таким образом, pd.Series будет выглядеть следующим образом:

In [2]: pd.Series([1, 1, 1], index=['a', 'b', 'c'])
Out[2]: 
a    1
b    1
c    1
dtype: int64

Когда все pd.Series объединяются, они становятся pd.DataFrame, а их index становятся columns; missing index стал column с NaN, как вы можете видеть дальше:

In [4]: a = pd.Series([1, 1, 1], index=['a', 'b', 'c'])
In [5]: b = pd.Series([1, 1, 1], index=['a', 'b', 'd'])
In [6]: pd.DataFrame([a, b])
Out[6]: 
     a    b    c    d
0  1.0  1.0  1.0  NaN
1  1.0  1.0  NaN  1.0

Теперь fillna заполняет те NaN с помощью 0:

In [7]: pd.DataFrame([a, b]).fillna(0)
Out[7]: 
     a    b    c    d
0  1.0  1.0  1.0  0.0
1  1.0  1.0  0.0  1.0

И downcast='infer' должен опуститься от float до int:

In [11]: pd.DataFrame([a, b]).fillna(0, downcast='infer')
Out[11]: 
   a  b  c  d
0  1  1  1  0
1  1  1  0  1

PS .: Не требуется использование .fillna(0, downcast='infer').

0
задан pradip tilala 13 March 2019 в 06:53
поделиться

2 ответа

Я добавляю:

     android {
        compileOptions {
            targetCompatibility = "8"
            sourceCompatibility = "8"
        }
}

, но это не работает, поэтому я перенесу свой проект в AdroidX, и он действительно работает.

0
ответ дан linhuacheng 13 March 2019 в 06:53
поделиться

Для справки: репродукция ответа Джейка Уортона :

Вы обновили OkHttp до версии 3.13 или новее и согласно примечаниям к выпуску , OkHttp теперь требует, чтобы вы включили Java 8 в ваших сборках для работы. Вы можете узнать больше о том, как включить это, на https://developer.android.com/studio/write/java8-support .

Вам нужно добавить что-то вроде

android {
    compileOptions {
        targetCompatibility = "8"
        sourceCompatibility = "8"
    }
}
0
ответ дан Maarten 13 March 2019 в 06:53
поделиться
Другие вопросы по тегам:

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