У меня есть CSV-файл, который я читаю, очищаю и анализирую с помощью панд.Я выбираю соответствующие данные и затем создаю список средств для каждого столбца (который я затем использую в качестве новых данных для нового кадра данных).Кажется, все работает - однако , когда я дважды проверил данные по значениям средних / средних «вручную», вычисленным в Excel, значения панд и Excel были разными.
CSV-файл, который я использую, можно найти здесь: https://drive.google.com/open?id=1TPczQoh1oS-RaRpepd4evxM919699Dss. Исходный файл из https://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/aberporthdata.txt;первая ссылка - только очищенная и предварительно подготовленная версия.
months = [3,4,5]
l = []
for j, station in enumerate(stations):
df = pd.read_csv('/Users/Ji/Documents/' + station + 'data_clean.csv')
df = df.drop('empty', axis=1).replace('---', np.nan)
df = df.loc[df['mm'].isin(months)]
df['station'] = station
df = df.astype({'mm': np.int32,'tmax': np.float32,'tmin': np.float32,'af': np.float32,'rain': np.float32,'sun': np.float32, 'station': np.str})
df = df.drop(['mm','yyyy'], axis=1)
row = [0]*6
for i, col in enumerate(list(df)):
if col == 'station':
row[5] = station
continue
row[i] = df[col].mean(skipna=True)
l.insert(j, row)
df_means = pd.DataFrame(data=l, columns=list(df))
Средства, которые я получил для этого конкретного файла в пандах, были:
tmax tmin af rain sun station
0 7.582970 3.190000 4.924325 84.921890 61.074783 aberporth
И средние значения, которые я получил в Excel, были:
tmax tmin af rain sun
12.38645949 7.193654267 1.576294278 75.78479784 129.2139254
Буду признателен за любые идеи или объяснения, почему это так и как это исправить!