1
我有一段代碼,我需要在我的數據中爲每個國家運行40次。我想寫一個函數,讓我輸入國家名稱作爲參數,從而執行步驟,而不是用40個國家中每個國家的相同代碼替換國家名稱7次(實際上我已經完成了這已經)。 可再現碼如下所示:函數來生成條形圖
dict_usa={'NYC': 0.10,
'LA': -0.05,
'Chicago': -0.16,
'Miami': -0.04,
'Detroit': -0.19,
'Seattle': -0.2,
'Boston': -0.3}
df_usa=pd.DataFrame({'usa':dict_usa})
df_usa.columns=['grade']
df_usa['positive']=df_usa['grade']>0
##### Plot
plt.subplots_adjust(left=.35)
df_usa['grade'].plot(kind='barh',
color=df_usa.positive.map({True:'b',
False:'r'}),
title="usa")
pylab.savefig('C:\\filepath\\Visuals\\test\\usatest.png')
這產生數據幀df_usa與值的等級的柱,併產生一個列稱爲正,其值爲True如果級的值是陽性和假陰性,如果。
df_usa.head.()
grade positive
Boston -0.30 False
Chicago -0.16 False
Detroit -0.19 False
LA -0.05 False
Miami -0.04 False
現在我想要做的正是這對其他40多個國家的,我有城市的字典中dict_country格式。 我試過如下:
def countryplot(df_country, country, dictname):
df_country=pd.DataFrame({country: dictname})
df_country.columns=['grade']
df_country['positive']=df_country['grade']>0
##### Plot
plt.subplots_adjust(left=.35)
df_country['disc'].plot(kind='barh',
color=df_country.positive.map({True:'b',
False:'r'),
title=country)
pylab.savefig('C:\\filepath\\Visuals\\'+country+'.png')
return
當我使用此功能:
countryplot(df_country='df_usa',country="'usa'",dictname='dict_usa')
我收到以下錯誤:
ValueError: If using all scalar values, you must pass an index
我是初學者 - 但非常專門學習Python進行數據分析。任何幫助將不勝感激。
你可以顯示'df_country.head()'顯示什麼? –
你爲什麼在美國附近有雙引號?此外,您不需要在該函數調用中具有變量。你不應該有df_country作爲你傳遞給你的函數的變量,如果你在你的函數中創建它的話...... – mauve
Spandan - 我已經添加了更多信息來回答你的問題。謝謝淡紫色。好決定!我已經把它拿出來了。謝謝! –