#python #python-3.x #pandas
#python #python-3.x #pandas
Вопрос:
Я полный новичок в Python и Pandas. Я следую руководству, и пока у меня есть следующий код:
import numpy as np
import pandas as pd
import plotly as pyplot
import datetime
df = pd.read_csv("GlobalLandTemperaturesByCountry.csv")
df = df.drop("AverageTemperatureUncertainty", axis=1)
df = df.rename(columns={"dt": "Date"})
df = df.rename(columns={"AverageTemperature": "AvTemp"})
df = df.dropna()
df_countries = df.groupby(["Country", "Date"]).sum().reset_index().sort_values("Date", ascending=False)
start_date = "2001-01-01"
end_date = "2002-01-01"
mask = (df_countries["Date"] > start_date) amp; (df_countries["Date"] <= end_date)
df_mask = df_countries.loc(mask)
Когда я пытаюсь запустить код, я получаю ошибку в последней строке, т. Е. df_mask = df_countries.loc(mask)
ошибка, являющаяся:
TypeError 'Series' objects are mutable, thus they cannot be hashed
Я уже нашел несколько ответов StackOverflow на эту ошибку, но, похоже, ни один из них не соответствует моему сценарию настолько, чтобы помочь. Почему я получаю эту ошибку?
Комментарии:
1. как насчет
df_countries.loc[mask]
илиdf_countries[mask]
, docs
Ответ №1:
В приведенном выше примере df_countries — это фрейм данных, и маска, похоже, является условием, которое должно быть применено к этому фрейму данных.
Объект является изменяемым, что означает, что его значение может быть изменено без переназначения ему той же переменной, его содержимое изменится в какой-то момент кода. В результате его значение хэша изменится, поэтому они не могут быть хэшированы.
Попробуйте:
df_mask = df_countries.loc[(маска)]