我在處理 csv 中丟失的資料時遇到問題。我希望下面的輸出看起來相同,只是沒有 nan 標簽,但都保留了缺少資料的州邊界。
帶有“nan”和小數問題的輸出:

另外,我在小數位上遇到了麻煩。我不希望這些出現。此外,我只是試圖為我要繪制的特定資料列執行此操作。下面是我試圖解決這兩個問題的代碼:
csv = pd.read_csv(r'C:\Downloads\Data.csv')
sf = r'C:\Downloads\s_11au16\s_11au16.shp'
US = gpd.read_file(sf)
#Merge them
data = gpd.GeoDataFrame(csv.merge(US))
#set projection
data = data.to_crs(epsg=6923)
#data = data[['NAME', 'soil_data']]
#data = data[data['soil_data'].notna()]
#data.soil_data = data.soil_data.astype(int)
#set up basemap
ax = data.plot(figsize = (12,8), column="soil_data", cmap="Greens", edgecolor='black', linewidth=.5, vmin=0, vmax=100,missing_kwds={"color": "white", "edgecolor": "k", "label": "none"})
#ax.set_title("Topsoil Moisture: Adequate Surplus %", fontsize=18, fontweight='bold')
ax.set_axis_off()
#annotate data
label = data
label.apply(lambda x: ax.annotate(text=x['soil_data'], xy=x.geometry.centroid.coords[0], color="black", ha='center', fontsize=14,
path_effects=[pe.withStroke(linewidth=3, foreground="white")]), axis=1)
我嘗試使用下面的這個塊代碼來解決問題,但這不起作用。
data = data[['NAME', 'soil_data']]
data = data[data['soil_data'].notna()]
data.soil_data = data.soil_data.astype(int)
同樣,這兩個問題是 1) 讓 nan 不標記,以及 2) 使標記為整數。
uj5u.com熱心網友回復:
如果沒有完全可重現的示例,很難確定,但我敢打賭:
#annotate data
label = data.dropna(subset='soil_data')
label.apply(lambda x: ax.annotate(text=int(x['soil_data']), xy=x.geometry.centroid.coords[0], color="black", ha='center', fontsize=14,
path_effects=[pe.withStroke(linewidth=3, foreground="white")]), axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/456063.html
標籤:Python 熊猫 麻木的 matplotlib 大熊猫
