Если изображение не может быть загружено (например, поскольку оно отсутствует в указанном URL-адресе), URL-адрес изображения будет изменен на значение по умолчанию,
Подробнее о .error ()
$('img').on('error', function (e) {
$(this).attr('src', 'broken.png');
});
Результат df.groupby(...)
не является DataFrame. Чтобы вернуть DataFrame, вам нужно применить функцию к каждой группе, преобразовать каждый элемент группы или фильтровать группы.
Кажется, что вам нужен DataFrame, содержащий (1) все ваши оригинальные данные в df
и (2) подсчет количества данных в каждой группе. Эти вещи имеют разную длину, поэтому, если им нужно зайти в один и тот же DataFrame, вам нужно будет перечислять размер избыточно, т. Е. Для каждой строки в каждой группе.
df['size'] = df.groupby(['A','B']).transform(np.size)
(Кроме этого: это полезно, если вы можете показать сжатый ввод проб и ожидаемые результаты.)
Вам нужно transform
size
- len
of df
такое же, как и раньше:
import pandas as pd
df = pd.DataFrame({'A': ['x', 'x', 'x','y','y']
, 'B': ['a', 'c', 'c','b','b']})
print (df)
A B
0 x a
1 x c
2 x c
3 y b
4 y b
df['size'] = df.groupby(['A', 'B'])['A'].transform('size')
print (df)
A B size
0 x a 1
1 x c 2
2 x c 2
3 y b 2
4 y b 2
При необходимости имя столбца в агрегации df
- len
of df
, очевидно, НЕ такое же, как и раньше:
import pandas as pd
df = pd.DataFrame({'A': ['x', 'x', 'x','y','y']
, 'B': ['a', 'c', 'c','b','b']})
print (df)
A B
0 x a
1 x c
2 x c
3 y b
4 y b
df = df.groupby(['A', 'B']).size().reset_index(name='Size')
print (df)
A B Size
0 x a 1
1 x c 2
2 y b 2
df.groupby(['A', 'B']).size().reset_index(name='Size')
Если у меня есть несколько индексов?
– Sotos
26 April 2018 в 12:20
.reset_index().rename(columns='index':'col', 'anothercol':'col2')
– jezrael
26 April 2018 в 13:41
(full_df .set_index('cdatetime') .groupby(['Cluster', 'source', 'action', pd.Grouper(freq = 'H', sort = True)]) .size() .reset_index(['Cluster', 'source', 'action']) .rename(columns={0: 'cnt'}) )
– Sotos
26 April 2018 в 13:44
позволяет сказать, что n - это имя dataframe, а cst - это число элементов, которые повторяются. Ниже приведен код в следующем столбце
cstn=Counter(n.cst)
cstlist = pd.DataFrame.from_dict(cstn, orient='index').reset_index()
cstlist.columns=['name','cnt']
n['cnt']=n['cst'].map(cstlist.loc[:, ['name','cnt']].set_index('name').iloc[:,0].to_dict())
Надеюсь, что это сработает
Встроенный метод объектов .size()
объектов DataFrameGroupBy фактически возвращает объект Series с размерами группы, а не DataFrame. Если вы хотите, чтобы DataFrame, чей столбец был размером группы, индексированный группами, с настраиваемым именем, вы можете использовать метод .to_frame()
и использовать в качестве аргумента имя требуемого столбца.
grpd = df.groupby(['A','B']).size().to_frame('size')
Если вы хотите, чтобы группы были столбцами снова, вы могли бы добавить .reset_index()
в конец.
df['size'] = df.groupby(['A','B']) .A .transform(np.size)
; без.A
вы получаете & quot; ValueError: неправильное количество элементов, переданных 2, размещение подразумевает 1 & quot ;, т. е. получает 2 столбца, необходимо 1 & quot; , – denis 14 July 2017 в 16:35