Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Как уже упоминалось, вы не приводите пример данных testTime и pass_site, но я предполагаю, что они являются плавающими номерами. Как я уверен, вы можете себе представить, вы не можете группировать плавающие числа. Скорее вам нужно сгруппировать по целым числам или категориям какого-либо типа.
попробуйте что-то вроде:
df.groupby(['data', 'category'])['passing_site', 'testTime'].mean()
Вы группируете данные и категорию, и затем вычисляет среднее значение для числовых столбцов «pass_site» и «testTime».
Можете ли вы сделать df.dtypes? В приведенном ниже примере тип - Int, поскольку он отлично работает.
import pandas as pd
##group by 1 columns
df = pd.DataFrame({' data': [4610, 4611, 4612, 4613], 'Category': [2, 2, 7, 7]})
print df.groupby('Category'). mean()
##Mutiple columns to group by
df1 = pd.DataFrame({' data': [4610, 4611, 4612, 4613], 'Category': [2, 2, 7, 7], 'Category2' : ['A','B','A','B']})
key=['Category','Category2']
print df1.groupby( key).mean()
Category Category2
2 A 4610
B 4611
7 A 4612
B 4613