2017-08-30 64 views
-1

我想要做的就是創建一個新的列會告訴我,每個國家的人口在2015年確定什麼是錯我的代碼

的DF的欄目有:

['id', 'code', 'name', 'area', 'area_land', 'area_water', 'population', 
    'population_growth', 'birth_rate', 'death_rate', 'migration_rate', 
    'created_at', 'updated_at'] 

這傢伙:

import pandas as pd 
import sqlite3 
import math 

con = sqlite3.connect(r'C:\Python34\factbook.db') 
facts = pd.read_sql_query('select * from facts;', con) 
facts.dropna() 
facts = facts[facts['area_land']!=0][:] 
facts = facts[facts['population']!=0][:] 

def pop_in_50(name): 
    pop=facts[facts['name']==name]['population'] 
    prec = facts[facts['name']==name]['population_growth'] 
    new_pop = pop*math.e**(35*(prec/100)) 
    return new_pop 

facts['pop_in_2050'] = facts['name'].apply(pop_in_50) 

它提供了以下errror:

ValueError: Wrong number of items passed 259, placement implies 1

+0

在哪條線路是這樣的失敗? – RageCage

+0

'facts.dropna(inplace = True)' – Wen

+0

雖然這可能是我的代碼的另一個問題,但它不能解決錯誤。我仍然得到:「錯誤的項目數量通過215,放置意味着1」 –

回答

0

嘗試:

new_pop = pop.values*math.e**(35*(prec.values/100))