Мой вопрос задавался несколько раз, и я реализовал предоставленные ответы, но ни один из них не сработал. У меня есть dataframe , который содержит столбец объекта, где все его ячейки являются пустыми строками. Я пытался отбросить его, используя следующие методы отдельно каждый раз:
data.dropna()
data.dropna(axis=1, inplace=True)
data.dropna(axis='columns', how='all', inplace=True)
data.mask(data.astype(bool)).dropna(axis=1, how='all')
data.dropna(subset=['columnName'], inplace=True)
filter = data['columnName'] != ""
data = data[filter]
Кроме того, однажды я попытался заменить пустые ячейки на Nan
, используя:
data['columnName'].replace('', np.nan, inplace=True)
а затем опустите столбец, но, как ни странно, в соответствующем столбце ничего не изменилось даже на NaN
. В приведенных выше строках кода везде, где это требовалось, я снова присваивал результат методам data
, но ни один из них не работал. Интересно, что использовать вместо этого, что работает?
Это пример данных:
BUILDING CATEGORY MEANS OF ACCESS ADDRESS PRICE
rental UK £700000
commercial UK £5000000
Я намерен отбросить СРЕДСТВА ДОСТУПА.
ОБНОВЛЕНИЕ Фрагмент кода выглядит следующим образом:
# Remove the initial 2 rows
data = pd.read_csv(file, skiprows=2, low_memory=False)
# Remove the irrelevant columns
data = data.drop(['REGION', 'NUMBER'], axis=1)
# Remove '$' sign
data['PRICE'] = [x[1:] for x in data['PRICE']]
columns = ['WHOLE UNITS', 'AREA', 'PRICE']
# Remove comma
data[columns] = data[columns].apply(lambda x: x.str.replace(',', ''))
# Convert to numeric
data[columns] = data[columns].apply(pd.to_numeric)
# Remove duplicate rows
data.drop_duplicates(inplace=True)
print((data['MEANS OF ACCESS'] == "").sum()) #returns 0 but it shouldn't