Я за свою жизнь не могу понять, как избавиться от этой ошибки!Я пытаюсь увидеть, имеют ли два разных фрейма данных два столбца с одной и той же строкой (например, если у обоих фреймов данных есть столбцы «Джексонвилл» в столбцах «Город» и «Флорида» в столбце «Штат»).Я пытаюсь запустить:
hpricesold = convert_housing_data_to_quarters()
hprices = hpricesold.copy()
hprices = hprices.reset_index(inplace=False)
def is_uni(df):
if df in get_list_of_university_towns():
return 1
else:
return 0
hprices['Is_Uni'] = hprices.apply(is_uni, axis=1)
и две вызываемые определения:
def convert_housing_data_to_quarters():
#create
hd = pd.read_csv('City_Zhvi_AllHomes.csv')
hd['State'] = hd['State'].map(states)
hd = hd.set_index(["State", "RegionName"])
hd = hd.drop(hd.loc[:, '1996-04':'1999-12'], inplace = False, axis = 1)
hd = hd.loc[:, '2000-01':'2016-08']
#finds the average value for each quarter
hd = hd.groupby(np.arange(len(hd.columns))//3, axis=1).mean()
#now to name the stupid thing...
rec = pd.read_excel('gdplev.xls', header = [4])
rec = rec.drop([0,1], axis=0)
start = rec[rec["Unnamed: 4"] =="2000q1"].index.values.astype(int)[0]
rec = rec.loc[start:]
rec = rec.reset_index()
rec = rec.drop(['index', 'Unnamed: 0', 'GDP in billions of current dollars',
'GDP in billions of chained 2009 dollars', 'Unnamed: 3', 'Unnamed: 7'], axis = 1)
rec = rec.rename(columns = {'Unnamed: 4' : 'Year',
'GDP in billions of current dollars.1' : 'GDP (bil current)',
'GDP in billions of chained 2009 dollars.1' : 'GDP (bil chained 2009)'})
rec = rec.append({'Year' : '2016q3'}, ignore_index = True)
for col in hd.columns:
hd = hd.rename(columns = {hd.columns[col] : rec.loc[col, 'Year']})
def get_list_of_university_towns():
#utowns = pd.read_table('university_towns.txt', header=None)
#utowns = utowns.rename(columns = {0: 'Info'})
lst = []
state = ''
regname = ''
with open('university_towns.txt') as utowns:
for line in utowns:
if line.find("[edit]") != -1:
location = line.find("[edit]")
state = line[:location]
#print (line[:location])
elif line.find(" (") != -1:
location = line.find(" (")
regname = line[:location]
#print (line[:location])
lst.append([state, regname])
#if line.find(":") != -1:
# location = line.find(":")
# regname = line[:location+1]
# lst.append([state, regname])
else:
regname = line[:-1]
#print (regname)
lst.append([state, regname])
utowns = pd.DataFrame(lst, columns = ['State', 'RegionName'])
return utowns
У меня такое ощущение, что источником моей ошибки является то, как я манипулирую своим кадром данных вconvert_housing_data_to_quarters (), но я немного заблудился в коде.Мне кажется, что имеет смысл, что каждый тип столбца является Серией, но как бы я тогда сделал его неизменным, чтобы я мог передать эту функцию?