我是一名完整的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) & (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答案,但似乎没有一个与我的情况相符的足以提供帮助。为什么会出现此错误?
答案 0 :(得分:0)
在上面的示例中df_countries是数据帧,而掩码似乎是要应用于此数据帧的条件。
该对象是可变的,这意味着可以更改其值而无需为它重新分配相同的变量,它的内容将在代码中的某个位置更改。结果,其哈希值将改变,因此无法对其进行哈希处理。
尝试:
df_mask = df_countries.loc [(mask)]