Я очищаю набор данных и хочу заменить выброс -9999.9 на медианное значение указанного столбца c. Каждый столбец представляет месяц, и это то, что я написал для устранения этого выброса. Когда я закончил замену выброса медианой, я объединяю переформатированные столбцы и столбцы, которые я оставил нетронутыми. См. Код ниже:
**import pandas as pd
import numpy as np
#Abottsford British Columbia
abottsfordbc = pd.read_csv("/Users/name/Desktop/Python_Scripts/wind_classifier/data_sets/canadian_windspeeds/abottsford_bc.csv", engine = 'python', sep = ',')
df_abottsfordbc = pd.DataFrame(abottsfordbc)
dataframe_labels = df_abottsfordbc[["Jan","Mar","Apr","May","Jun","Jul","Aug","Sep","Nov","Dec","Annual","Winter","Spring","Summer","Autumn"]]
for i in df_abottsfordbc["Feb"]:
if i == -9999.9:
column_median = df_abottsfordbc["Feb"].median()
outlier_convert = df_abottsfordbc["Feb"].replace(to_replace = [-9999.9], value = [0])
zero_to_medianFeb = outlier_convert.replace(to_replace = [0], value = [column_median])
for i in dataframe_labels["Oct"]:
if i == -9999.9:
column_median = df_abottsfordbc["Oct"].median()
outlier_convert = df_abottsfordbc["Oct"].replace(to_replace = [-9999.9], value = [0])
zero_to_medianOct = outlier_convert.replace(to_replace = [0], value = [column_median])
abottsford_bc_concat = pd.concat([dataframe_labels, zero_to_medianFeb, zero_to_medianOct], axis = 1)**
Мне интересно, может ли кто-нибудь помочь мне с этой проблемой, с которой я столкнулся. Я недавно загрузил данные с компьютера aa Windows 10 на Ma c под управлением macOS Catalina, и я не совсем уверен, почему это нормально работает на Windows 10, но не на MacOS, я использую Spyder версии 4.1.4 и Python 3.8 на моем Ма c. Я не уверен, почему моя Spyder IDE может интерпретировать данные и скрипт на Windows10, но не на macOS Catalina. Я проверил файл .csv, который я читаю, и он совершенно нормален в Microsoft Excel. Все имена столбцов находятся там, где они должны быть. Однако, когда я распечатываю фрейм данных, я получаю следующее:
**
print(abottsfordbc)
Year
1953 16.4 9.5 11.9 10.0 10.0 8.1 8.9 8.6 9.2 8.6 12.7 11.9 10.5 12.9 10.6 8.6 10.2
1954 17.9 16.5 12.6 13.5 10.8 10.5 8.9 7.9 7.9 11.6 11.8 13.1 11.9 15.4 12.3 9.1 10.4
1955 8.6 10.2 11.5 11.2 8.8 7.2 7.1 6.6 5.9 8.7 14.3 11.1 9.3 10.7 10.5 7.0 9.6
1956 10.5 10.0 16.1 13.6 12.6 13.4 10.8 9.9 11.4 14.0 11.1 18.4 12.7 10.5 14.1 11.4 12.2
1957 17.9 18.4 14.9 13.0 10.7 12.4 12.1 9.4 9.5 14.8 11.1 18.4 13.6 18.3 12.9 11.3 11.8
...
2010 10.1 9.0 10.9 13.2 10.3 9.5 9.8 8.5 8.5 7.9 12.3 10.9 10.1 9.4 11.4 9.3 9.6
2011 10.2 14.5 13.2 11.7 9.0 10.4 9.3 7.8 8.0 7.4 10.5 7.7 10.0 11.9 11.3 9.2 8.6
2012 12.9 11.1 13.2 9.8 10.4 9.6 9.2 7.8 6.6 10.6 9.7 10.2 10.1 10.6 11.2 8.8 9.0
2013 7.5 10.4 10.6 11.7 9.0 9.2 10.8 8.4 9.1 7.9 9.2 11.4 9.6 9.3 10.5 9.5 8.7
2014 9.9 17.5 11.5 11.4 9.6 10.3 10.1 8.6 8.7 10.0 13.4 11.4 11.0 12.9 10.8 9.7 10.7
[62 rows x 1 columns]
**
Код ошибки, который я получаю, можно найти ниже, что имеет смысл потому что, когда я распечатываю фреймворк, я вижу, что «Фев» не является столбцом. Кто-нибудь знает, почему мой read_csv () не читает мой файл .csv должным образом? Вместо того, чтобы интерпретировать год как последний столбец вместо первого, а остальные столбцы оставлять пустыми? Когда я открываю файл .csv в Microsoft Excel, он правильно отформатирован и сохраняется как файл .csv UTF-8. Любая помощь будет принята с благодарностью.
runfile('/Users/name/Desktop/Python_Scripts/wind_classifier/cleanwind.py', wdir='/Users/name/Desktop/Python_Scripts/wind_classifier')
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2646, in get_loc
return self._engine.get_loc(key)
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'Feb'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/bryanekeh/Desktop/Python_Scripts/wind_classifier/cleanwind.py", line 11, in <module>
for i in abottsfordbc["Feb"]:
File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/frame.py", line 2800, in __getitem__
indexer = self.columns.get_loc(key)
File "/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexes/base.py", line 2648, in get_loc
return self._engine.get_loc(self._maybe_cast_indexer(key))
File "pandas/_libs/index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/index.pyx", line 138, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 1619, in pandas._libs.hashtable.PyObjectHashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 1627, in pandas._libs.hashtable.PyObjectHashTable.get_item
KeyError: 'Feb'