获取唯一列值时出现属性错误
Attribute Error when getting unique column values
我是 Python 和 Pandas 的新手。我正在尝试编写一个函数来获取我的列值的唯一列表。我的函数如下所示,其中 "placename" 是我想要获得唯一值的属性。 'placename'应该作为字符串参数传递,对应csv文件的header。
def get_city_list(state, type, placename):
city_dir = os.path.join(baseDir, type + ".csv")
city_df = pd.read_csv(city_dir, quotechar = '"', skipinitialspace = True, sep = ",")
state_df = city_df.loc[city_df["state"] == state]
city_list = state_df.placename.unique()
return city_list
然而,当我调用这个函数时,它抛出一个属性错误,说 'DataFrame' object 没有属性 "placename"。似乎 "placename" 不应该是一个字符串,当我将它替换为
city_list = state_df.cityname.unique(),有效,其中 cityname(不带“”)是原始 csv 文件中列的实际 header。由于我想让我的功能变得通用,所以我想找到一种方法来处理这种情况,这样我就不必每次都手动更改"placename"的内容。
非常感谢您的帮助!
谢谢
点运算符 .
保留用于访问对象的属性。 pandas
足以使列名可通过属性访问。但是你不能做像 df."myplace"
这样的事情
将您的代码更改为:
state_df[placename].unique()
这样,您将 placename
传递给 getitem
方法。
我是 Python 和 Pandas 的新手。我正在尝试编写一个函数来获取我的列值的唯一列表。我的函数如下所示,其中 "placename" 是我想要获得唯一值的属性。 'placename'应该作为字符串参数传递,对应csv文件的header。
def get_city_list(state, type, placename):
city_dir = os.path.join(baseDir, type + ".csv")
city_df = pd.read_csv(city_dir, quotechar = '"', skipinitialspace = True, sep = ",")
state_df = city_df.loc[city_df["state"] == state]
city_list = state_df.placename.unique()
return city_list
然而,当我调用这个函数时,它抛出一个属性错误,说 'DataFrame' object 没有属性 "placename"。似乎 "placename" 不应该是一个字符串,当我将它替换为
city_list = state_df.cityname.unique(),有效,其中 cityname(不带“”)是原始 csv 文件中列的实际 header。由于我想让我的功能变得通用,所以我想找到一种方法来处理这种情况,这样我就不必每次都手动更改"placename"的内容。
非常感谢您的帮助!
谢谢
点运算符 .
保留用于访问对象的属性。 pandas
足以使列名可通过属性访问。但是你不能做像 df."myplace"
将您的代码更改为:
state_df[placename].unique()
这样,您将 placename
传递给 getitem
方法。