【案例-數(shù)據(jù)分析】Wine Reviews

from kaggle:
https://www.kaggle.com/zynicide/wine-reviews

分析思路:

0、數(shù)據(jù)準(zhǔn)備
1、葡萄酒的種類(lèi)
2、葡萄酒質(zhì)量
3、葡萄酒價(jià)格
4、葡萄酒描述詞庫(kù)
5、品鑒師信息
6、總結(jié)

0、數(shù)據(jù)準(zhǔn)備

0.1 模塊及數(shù)據(jù)導(dǎo)入

導(dǎo)入所需數(shù)據(jù)模塊:

import pandas as pd
import numpy as np 
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['font.sans-serif']=['SimHei'] #用來(lái)正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus']=False #用來(lái)正常顯示負(fù)號(hào)
import seaborn as sns 

導(dǎo)入數(shù)據(jù),并檢查數(shù)據(jù)的完整性:

wine1=pd.read_csv('/Users/ranmo/Desktop/數(shù)據(jù)分析案例/Wine Reviews/wine-reviews/winemag-data_first150k.csv')
wine2=pd.read_csv('/Users/ranmo/Desktop/數(shù)據(jù)分析案例/Wine Reviews/wine-reviews/winemag-data-130k-v2.csv')
#兩個(gè)表的數(shù)據(jù)類(lèi)型是一致的,合并兩個(gè)表
wine=pd.concat([wine1,wine2],ignore_index=True,sort=False)
wine=wine.drop(labels='Unnamed: 0',axis=1)
wine.info()
image.png

0.2 對(duì)wine表進(jìn)行處理:

wine表共含有13個(gè)字段,每個(gè)字段共280901行,分別解釋為:

  • country:產(chǎn)出國(guó)
  • description:描述
  • designation:葡萄酒名稱(chēng)
  • points:得分
  • price:價(jià)格
  • province:產(chǎn)出省
  • region_1:產(chǎn)出區(qū)域1
  • region_2:產(chǎn)出區(qū)域2
  • variety:品種
  • winery:酒廠
  • taster_name:品鑒師
  • taster_twitter_handle:品鑒師推特號(hào)
  • title:頭銜(不懂這個(gè)是什么)

對(duì)wine表進(jìn)行數(shù)據(jù)清洗:
(1)數(shù)據(jù)去重:

wine.duplicated().value_counts()
image.png
wine=wine.drop_duplicates()
#進(jìn)一步檢查,發(fā)現(xiàn)存在很多字段都重復(fù)的數(shù)據(jù),認(rèn)為是重復(fù)數(shù)據(jù)并將其清除
dupilicated_index=list(wine[wine[['country','description','designation','province','points','price']].duplicated()].index)
wine=wine.drop(labels=dupilicated_index,axis=0)
wine.reset_index(drop=True)

(2)不良數(shù)據(jù)處理


image.png

經(jīng)查看,points和price兩項(xiàng)數(shù)據(jù)均在合理區(qū)間,故無(wú)不良數(shù)據(jù)。
數(shù)據(jù)經(jīng)過(guò)處理后:


image.png

下面的分析主要圍繞以下幾個(gè)方面開(kāi)展:
  • 葡萄酒種類(lèi),以及在各個(gè)國(guó)家的主要分布情況;
  • 葡萄酒得分情況,分析葡萄酒質(zhì)量最好的國(guó)家和地區(qū);
  • 葡萄酒價(jià)格情況,分析不同葡萄酒種類(lèi)的價(jià)格,分析價(jià)格和得分的關(guān)系,挖掘性?xún)r(jià)比最高的葡萄酒種類(lèi);
  • 提取葡萄酒描述關(guān)鍵詞,建立不同種類(lèi)葡萄酒的關(guān)鍵詞庫(kù),當(dāng)用戶(hù)輸入描述關(guān)鍵詞時(shí),可以反饋?zhàn)钇ヅ涞钠咸丫品N類(lèi);
  • 提取品鑒師的信息并建立品鑒師信息庫(kù),用戶(hù)可查看品鑒師排行榜及分類(lèi)排行榜,同時(shí)提供相關(guān)品鑒師twitter聯(lián)系方式查詢(xún)。

1、葡萄酒的種類(lèi)

1.1 種類(lèi)總體分布

temp=wine.variety.value_counts()[0:15]
ax=temp.plot(kind='bar',title='top 15 of Wine Virieties',colormap='Accent')
plt.ylabel('Quantity',fontsize=12)
image.png
  • 數(shù)量最多的葡萄酒種類(lèi)有Pinot Noir 、Chardonnay 、Cabernet Sauvignon等等。

1.2 不同國(guó)家的種類(lèi)分布

temp=wine.country.value_counts()
temp.plot(kind='pie',autopct='%.2f%%',figsize=(12,12))
plt.legend(bbox_to_anchor=(1,1))  #將圖例設(shè)置在圖片外
#圖片盡力了,之后再研究可視化自定義的東西吧
  • US、France、Italy、Spain都是葡萄酒大國(guó),前四者的葡萄酒種類(lèi)數(shù)量超過(guò)了總市場(chǎng)75%的份額。
temp=wine.groupby(['country','variety']).variety.count()
temp=temp.to_frame()
temp.columns=['quantity']
#組內(nèi)排序(國(guó)家內(nèi)部種類(lèi)排序)
temp['rank_variety']=temp.quantity
temp['rank_variety']=temp.groupby(by='country').rank_variety.apply(lambda x:x.rank(method='min',ascending=False))
# 國(guó)家排序
temp1=temp.groupby(by=['country']).quantity.sum().rank(method='min',ascending=False).sort_values()
temp1=temp1.to_frame()
temp1.columns=['rank_country']
#聯(lián)結(jié)兩個(gè)表
temp2=pd.merge(temp,temp1,on='country',right_index=True)
#返回每個(gè)國(guó)家前五的種類(lèi)
temp3=temp2.sort_values(by=['rank_country','rank_variety'])
temp3[temp3.rank_variety<6]
  • 提供一個(gè)表查詢(xún),可以返回每個(gè)國(guó)家數(shù)量最多的五類(lèi)葡萄酒。

2、葡萄酒質(zhì)量

2.1 總體質(zhì)量情況

sns.set(style="darkgrid")
sns.boxplot(y='points',data=wine)
wine.points.describe()

  • 葡萄酒平均得分為88.24分,可以認(rèn)為:
    優(yōu)秀:90分及以上
    良好:88.5~90分
    一般:86~88.5分
    較差:86分以下

2.2 不同國(guó)家的葡萄酒質(zhì)量

#確定十五個(gè)國(guó)家
temp=wine.country.value_counts()[0:15]

#形成新表收藏十五個(gè)國(guó)家的數(shù)據(jù)
country_15=temp1=wine
for i in list(wine.index):
    if country_15=temp1.loc[i].country not in list(temp.index):
        country_15=temp1=country_15=temp1.drop(labels=i)

plt.figure(figsize=(12,12))
sns.boxplot(x='country',y='points',data=temp1)
plt.xticks(rotation=30)
#想在箱圖中加一條平均值的直線,但是不知道怎么加?。?
image.png
  • Canada、Austria雖然不是不是葡萄酒的盛產(chǎn)國(guó),但其平均分治較高,而且低分葡萄酒較少,表明這些國(guó)家的葡萄酒質(zhì)量有一定的保障,但沒(méi)有絕佳的葡萄酒產(chǎn)品;
  • US、France作為葡萄酒大國(guó),均分處在中等水平,同時(shí)存在絕佳的葡萄酒(滿(mǎn)分產(chǎn)品)以及質(zhì)量較差的葡萄酒(最低分產(chǎn)品),葡萄酒整體質(zhì)量尚可,
  • Spain作為葡萄酒第二大國(guó),均分較低,也不存在絕佳的葡萄酒產(chǎn)品,整體質(zhì)量有待提高。
#確定十五個(gè)國(guó)家
country_15=country_15.drop(labels='index',axis=1)
#轉(zhuǎn)化成百分率
country_points_new=country_points
country_points_new.bad=country_points_new.bad.values/country_points_new.total.values
country_points_new.normal=country_points_new.normal.values/country_points_new.total.values
country_points_new.good=country_points_new.good.values/country_points_new.total.values
country_points_new.excellent=country_points_new.excellent.values/country_points_new.total.values
country_points_new=country_points_new.drop(label='total',axis=1)
#要畫(huà)堆積圖必須進(jìn)行層級(jí)索引的轉(zhuǎn)換
country_points_new.columns=pd.MultiIndex.from_product([['Ratio'],['bad','normal','good','excellent']])
country_points_new.plot(y='Ratio',kind='bar',figsize=(10,6),stacked=True)
image.png
  • Canada、Austria、Germany表現(xiàn)良好,Chile、Argentina
    、Greece表現(xiàn)較差,這與前文中分析的結(jié)論是一致的;
  • 葡萄酒大國(guó)中US、France比較優(yōu)秀,Spain表現(xiàn)有待提升,這與前文中分析的結(jié)論也是一致的。

3、葡萄酒價(jià)格

3.1 整體價(jià)格情況

image.png
  • 葡萄酒價(jià)格最大值為3300,屬于極值情況
plt.figure(figsize=(15,15))
sns.stripplot(y='price',data=wine)
image.png
plt.figure(figsize=(15,15))
sns.distplot(wine.price.dropna())
image.png

根據(jù)葡萄酒的價(jià)格分布可知:

  • 葡萄酒價(jià)格一般在0~100之間,超過(guò)500以上的可認(rèn)為是高端酒類(lèi),超過(guò)1000以上則是頂級(jí)奢華酒類(lèi)。

這些頂級(jí)奢華葡萄酒分別是:


image.png
high_price=wine[wine.price>=1000][['country','province','designation','points','variety','price']].sort_values(by='price')
high_price.plot(kind='bar',x='variety',y='price')
image.png

可以得到以下結(jié)論:

  • 最頂級(jí)的葡萄酒種類(lèi)為:Bordeaux-style Red Blend、Pinot Noir、Chardonnay、Grüner Veltliner、Port和Bordeaux-style White Blend;
  • 法國(guó)Bordeaux盛產(chǎn)頂級(jí)葡萄酒,主要是以Bordeaux命名的兩類(lèi)葡萄酒:Bordeaux-style Red Blend、Bordeaux-style White Blend;
  • 頂級(jí)葡萄酒的評(píng)分除一項(xiàng)外均在90分以上,證明其品質(zhì)優(yōu)秀,也說(shuō)明了“貴的有道理”;
  • 價(jià)格最高(3300)的葡萄酒評(píng)分反而低于90,一方面可能是其本身質(zhì)量不夠好,也有可能是因其定價(jià)遠(yuǎn)超出其質(zhì)量導(dǎo)致了低分效應(yīng)。

3.2 價(jià)格和評(píng)分的關(guān)系

價(jià)格和評(píng)分的整體分布為:

plt.figure(figsize=(12,12))
sns.scatterplot(x='price',y='points',data=wine)
image.png
a=wine[['points','price']].corr()
print('價(jià)格和評(píng)分的整體相關(guān)性系數(shù)為%.4f'%(a[0:1]['price']))
b=wine[wine.price<100][['points','price']].corr()
print('單價(jià)為100以下的葡萄酒價(jià)格和評(píng)分的相關(guān)性系數(shù)為%.4f'%(b[0:1]['price']))
價(jià)格和評(píng)分的整體相關(guān)性系數(shù)為 0.4270
單價(jià)為100以下的葡萄酒價(jià)格和評(píng)分的相關(guān)性系數(shù)為 0.5501
  • 單價(jià)為100以下的葡萄酒價(jià)格和評(píng)分的相關(guān)性系數(shù)為 0.5501,可以認(rèn)為價(jià)格和評(píng)分有一定的正相關(guān)關(guān)系;
  • 單價(jià)在100以上后,價(jià)格和評(píng)分的相關(guān)性減弱,有可能是這些商品的定價(jià)因素有很多的其他附屬價(jià)值,而不是單純的葡萄酒質(zhì)量。

利用單價(jià)100以下的數(shù)據(jù)建立回歸模型:

plt.figure(figsize=(12,12))
sns.lmplot(x='price',y='points',data=(wine[wine.price<100][['points','price']]))
image.png
from sklearn import linear_model #導(dǎo)入機(jī)器學(xué)習(xí)庫(kù)中的線性回歸方法
x=np.array(wine[wine.price<100]['price']).reshape(151615,1)
y=np.array(wine[wine.price<100]['points']).reshape(151615,1)
#建立回歸模型
model=linear_model.LinearRegression()
model.fit(x,y)
#獲取模型
coef=model.coef_ #獲取自變量系數(shù)
model_intercept=model.intercept_#獲取截距
R2=model.score(x,y) #R的平方
print('線性回歸方程為:','\n','y=’{}*x+{}'.format(coef,model_intercept))
線性回歸方程為: 
 y=’[[0.09049411]]*x+[85.31720477]

當(dāng)葡萄酒的實(shí)際評(píng)分大于該模型反饋的評(píng)分時(shí),可以認(rèn)為該葡萄酒的性?xún)r(jià)比較高。從原始數(shù)據(jù)中篩選這部分模型(擴(kuò)展到所有價(jià)格區(qū)間):

#生成新表來(lái)記錄性?xún)r(jià)比高的葡萄酒
wine_good=wine
wine_good['points_new']=coef*wine_good.price+model_intercept
wine_good=wine[wine_good.points>wine_good.points_new].reset_index(drop=True)
#畫(huà)圖
wine_good.country.value_counts().plot(kind='pie',figsize=(12,12))
plt.legend(bbox_to_anchor=(1,1))  #將圖例設(shè)置在圖片外
image.png

與前文分析對(duì)比可知:

  • US、France、Italy、Spain都是葡萄酒大國(guó),US無(wú)論是葡萄酒數(shù)量還是高性?xún)r(jià)比葡萄酒數(shù)量都穩(wěn)居榜首;
  • France雖然葡萄酒數(shù)量占比比Italy更高,但是性?xún)r(jià)比方面卻落后于Italy,這可能是因?yàn)镕rance擅產(chǎn)頂級(jí)奢侈葡萄酒,而Italy把市場(chǎng)瞄準(zhǔn)在中端市場(chǎng)。
wine_good.variety.value_counts()[0:15].plot(kind='bar',figsize=(12,12))
image.png
  • 含有較多高性?xún)r(jià)比葡萄酒的種類(lèi)有:Pinot Noir、Chardonnay、Red Blend 、Cabernet Sauvignon、Riesling等,而這幾類(lèi)本身也是市場(chǎng)占有率較高的幾類(lèi);
  • 同時(shí)含有頂級(jí)奢侈酒的種類(lèi)有:Pinot Noir、Chardonnay、Bordeaux-style Red Blend。

3.3 高性?xún)r(jià)比葡萄酒推薦庫(kù)

#確定每個(gè)價(jià)格段的評(píng)分最高的10個(gè)葡萄酒
temp=list(wine.groupby('price').points.nlargest(5).to_frame().reset_index().level_1)
#創(chuàng)建新表作為葡萄酒推薦庫(kù)
wine_recommend=wine.loc[temp].reset_index(drop=True)

plt.figure(figsize=(15, 10))
sns.scatterplot(y='points',x='price',hue='country',data=wine_recommend)
image.png

創(chuàng)建葡萄酒推薦庫(kù),當(dāng)用戶(hù)輸入預(yù)期價(jià)格時(shí),會(huì)自動(dòng)推薦性?xún)r(jià)比最高的葡萄酒(也可以創(chuàng)建庫(kù)讓用戶(hù)可以輸入國(guó)家或者種類(lèi)等信息,這里沒(méi)有拓展):

print('請(qǐng)輸入您的葡萄酒預(yù)期價(jià)格:')
a=float(input(''))
# 如果價(jià)格正好有
if a in list(wine_recommend.price):
    temp=wine_recommend[wine_recommend.price==a]
    for i in list(temp.index):
      if temp.loc[i].designation:    #如果有葡萄酒名字
        print('為您推薦:來(lái)自%s的%s種類(lèi)的%s葡萄酒,價(jià)格為%.1f,得分為%.1f。'%(temp.loc[i].country,temp.loc[i].variety,temp.loc[i].designation,temp.loc[i].price,temp.loc[i].points))
      else:
        print('為您推薦:來(lái)自%s的%s類(lèi)葡萄酒,價(jià)格為%.1f,得分為%.1f。'%(temp.loc[i].country,temp.loc[i].variety,temp.loc[i].price,temp.loc[i].points))
#如果價(jià)格沒(méi)有,則不推薦(其實(shí)這里也應(yīng)該推薦價(jià)格低一些的,但是懶得寫(xiě)了?。?else:
    print('沒(méi)有合適的價(jià)格,請(qǐng)重新輸入')
請(qǐng)輸入您的葡萄酒預(yù)期價(jià)格:
50
為您推薦:來(lái)自US的Bordeaux-style Red Blend種類(lèi)的Red Wine葡萄酒,價(jià)格為50.0,得分為98.0。
為您推薦:來(lái)自US的Chardonnay種類(lèi)的Allen Vineyard葡萄酒,價(jià)格為50.0,得分為97.0。
為您推薦:來(lái)自US的Pinot Noir種類(lèi)的Sundawg Ridge Vineyard葡萄酒,價(jià)格為50.0,得分為97.0。
為您推薦:來(lái)自US的Chardonnay種類(lèi)的Dutton Ranch Rued Vineyard葡萄酒,價(jià)格為50.0,得分為97.0。
為您推薦:來(lái)自US的Cabernet Sauvignon種類(lèi)的Estate葡萄酒,價(jià)格為50.0,得分為97.0。

4、葡萄酒描述詞庫(kù)

4.1 整體關(guān)鍵詞描述

from wordcloud import WordCloud
wc=WordCloud(background_color="white", max_words=200, colormap="Set2")

#略過(guò)了創(chuàng)建停用詞庫(kù)進(jìn)行數(shù)據(jù)清洗的環(huán)節(jié)
words=wine.description
wc.generate(''.join(str(words)))
plt.figure(figsize=(10, 10))
plt.imshow(wc, interpolation='bilinear')
plt.axis("off")
plt.show()
image.png
  • 整體性的關(guān)鍵詞描述:wine、aromas、Cabernet、blackberry、blend等;

4.2 創(chuàng)建不同種類(lèi)葡萄酒的詞頻庫(kù)

#只為擁有數(shù)量在100之上的種類(lèi)創(chuàng)建詞頻庫(kù)
temp=wine.variety.value_counts()
temp=temp[temp>100].to_frame().reset_index()
temp=temp.drop(labels='variety',axis=1)
temp.columns=['variety']

#用inner聯(lián)結(jié)的方式創(chuàng)建新表
wine_words=pd.merge(wine,temp,on='variety')
temp1=wine_words.groupby(by='variety').description.apply(lambda x:''.join(str(x)))
#創(chuàng)建一個(gè)dataframe,列名為種類(lèi),值為種類(lèi)的關(guān)鍵詞(其實(shí)應(yīng)該為每一個(gè)種類(lèi)創(chuàng)建詞頻庫(kù),我只是在偷懶)
wine_keys=pd.DataFrame()
for variety_name in temp1.index:
    words=temp1[variety_name].lower().split()[1:]
    a=dict()
    for word in words:
        if word not in a:
            a[word] = 1
        else:
            a[word] = a[word] + 1
    #對(duì)字典鍵值(出現(xiàn)頻次)排序,返回出現(xiàn)頻次最高的30個(gè)關(guān)鍵詞,并更新在詞頻庫(kù)中
    a=pd.Series(a)
    a=a.sort_values(ascending=False)[0:30]
    wine_keys[variety_name]=list(a.index)
#詞頻庫(kù)中存在大量的停用詞,我沒(méi)有處理的

#詞頻庫(kù)的反饋規(guī)則為:1、如果某個(gè)詞沒(méi)有出現(xiàn),則認(rèn)為無(wú)法判斷;
#                2、如果某個(gè)詞在超過(guò)10個(gè)種類(lèi)中出現(xiàn),則認(rèn)為無(wú)法判斷;
#               3、如果某個(gè)詞在小于10個(gè)種類(lèi)中出現(xiàn),則返回排名最高的那五個(gè)類(lèi);
#反饋規(guī)則也有很大問(wèn)題,不再深究了

print('請(qǐng)輸入一個(gè)關(guān)鍵詞:')
keywords=input()

#創(chuàng)建一個(gè)字典(再轉(zhuǎn)化成dataframe)記錄所屬關(guān)鍵詞所屬的種類(lèi),以及索引。如果種類(lèi)數(shù)小于10,則返回索引最小的那幾個(gè)種類(lèi)
a=dict()
for variety_name in list(wine_keys.columns):
    if (wine_keys[variety_name]==keywords).sum()==1:
        a[variety_name]=(wine_keys[variety_name]==keywords).idxmax()
a=pd.Series(a)
if a.shape[0]>10:
    print('信息不足,無(wú)法判斷')
else:
    b=a.sort_values()[0:5]
    print('根據(jù)您輸入的信息,為您推薦相關(guān)的葡萄酒種類(lèi):')
    for aaa in list(b.index):
        print(aaa)

詞頻庫(kù)的篩選結(jié)果如下:

請(qǐng)輸入一個(gè)關(guān)鍵詞:
in
信息不足,無(wú)法判斷
請(qǐng)輸入一個(gè)關(guān)鍵詞:
sauvignon
根據(jù)您輸入的信息,為您推薦相關(guān)的葡萄酒種類(lèi):
Cabernet Sauvignon-Syrah
Cabernet Blend
Fumé Blanc
Sauvignon
Sémillon

5、品鑒師信息

5.1 品鑒師總體情況

wine.taster_name.value_counts().plot(kind='bar',figsize=(12,12))
plt.xticks(rotation=90)
image.png
  • 一共有19位品鑒師,其中Roger Voss、Michael Schachner、Kerin O’Keefe、Virginie Boone、Paul Gregutt等人是最資深的葡萄酒品鑒專(zhuān)家,并負(fù)責(zé)了市場(chǎng)上絕大部分的葡萄酒品鑒工作。

5.2 受到不同市場(chǎng)青睞的品鑒師

wine.groupby('taster_name').price.describe().sort_values(by='count',ascending=False)
image.png
plt.figure(figsize=(12,12))
wine_taster=wine[(wine.taster_name=='Roger Voss')|(wine.taster_name=='Michael Schachner')|(wine.taster_name=='Kerin O’Keefe')|(wine.taster_name=='Virginie Boone')|(wine.taster_name=='Paul Gregutt')]
sns.boxplot(y='points',x='taster_name',data=wine_taster)
plt.xticks(rotation=90)
image.png

從表中數(shù)據(jù)可以看出:

  • Roger Voss作為最資深的葡萄酒品鑒專(zhuān)家,品鑒種類(lèi)相當(dāng)廣泛,涵蓋低中高市場(chǎng),同時(shí)擁有對(duì)最頂級(jí)奢華葡萄酒(價(jià)格為3300)的品鑒經(jīng)驗(yàn);
  • Kerin O’Keefe和Virginie Boone則主要受到中高端葡萄酒商家的青睞,品鑒的葡萄酒均價(jià)為分別為41.9和49.5,評(píng)分也比較集中在一般和良好之間;
  • Michael Schachner則主要瞄準(zhǔn)中低端市場(chǎng),品鑒的葡萄酒均價(jià)為25.69,相應(yīng)的葡萄酒評(píng)分較低。
  • Kerin O’Keefe和Virginie Boone同為中高端市場(chǎng)的品鑒專(zhuān)家,評(píng)分上面卻存在較大差異,這可能是由于Kerin O’Keefe較為嚴(yán)苛所致,對(duì)此還可以進(jìn)一步進(jìn)行佐證的是:Paul Gregutt品鑒的葡萄酒價(jià)格整體較Kerin O’Keefe更低,但是整體評(píng)分卻比Kerin O’Keefe的更高。

5.3 品鑒師品鑒種類(lèi)及聯(lián)系方式概覽

#創(chuàng)建一個(gè)表,收集每個(gè)品鑒師品鑒最多的五個(gè)種類(lèi)
temp=wine.groupby('taster_name').variety.value_counts().to_frame()
temp.columns=['num']
temp=temp.reset_index(level='variety')

taster_variety=pd.DataFrame()
for aaa in temp.index:
    taster_variety[aaa]=list(temp.loc[aaa].variety[0:5])
taster_variety=taster_variety.T
taster_variety=taster_variety.reset_index()
taster_variety.columns=[['taster_name','variety1','variety2','variety3','variety4','variety5']]

#創(chuàng)建一個(gè)表,收集品鑒師的聯(lián)系方式,該表按照品鑒師資深程度排列
link=wine[['taster_name','taster_twitter_handle']].dropna().drop_duplicates()
namelist=list(wine.taster_name.value_counts().index)

name_link=pd.DataFrame(dict(zip(namelist,namelist)),index=['taster_twitter_handle'])
for aaa in namelist:
    if aaa in list(link.taster_name):
        name_link[aaa]=list(link[link.taster_name==aaa].taster_twitter_handle)[0]
    else:
        name_link[aaa]='@'
name_link=name_link.T.reset_index()
name_link.columns=[['taster_name','taster_twitter_handle']]

#聯(lián)結(jié)兩表
taster_info=pd.merge(name_link,taster_variety)
image.png
  • 提供了一個(gè)品鑒師名錄,按照資深程度排序,顯示該品鑒師的聯(lián)系方式,以及品鑒最多的五類(lèi)葡萄酒。

6、總結(jié)

  • US、France、Italy、Spain都是葡萄酒大國(guó),US無(wú)論是葡萄酒數(shù)量還是高性?xún)r(jià)比葡萄酒數(shù)量都穩(wěn)居榜首,F(xiàn)rance擅產(chǎn)頂級(jí)奢侈葡萄酒,Italy把市場(chǎng)瞄準(zhǔn)在中端市場(chǎng),Spain的整體質(zhì)量有待提高;
  • 數(shù)量最多的葡萄酒種類(lèi)有Pinot Noir 、Chardonnay 、Cabernet Sauvignon等,其中最頂級(jí)的葡萄酒種類(lèi)為:Bordeaux-style Red Blend、Pinot Noir、Chardonnay、Grüner Veltliner、Port和Bordeaux-style White Blend;
  • 葡萄酒描述關(guān)鍵詞有:wine、aromas、Cabernet、blackberry、blend等,同時(shí)創(chuàng)建了不同種類(lèi)葡萄酒的詞頻庫(kù),用戶(hù)輸入關(guān)鍵詞,可以反饋適合的葡萄酒種類(lèi);
  • 葡萄酒品鑒師中,Roger Voss、Kerin O’Keefe、Virginie Boone和Michael Schachner都是資深的專(zhuān)家,面向的市場(chǎng)各有不同;同時(shí)創(chuàng)建了品鑒師名錄,顯示品鑒師聯(lián)系方式,以及品鑒最多的五類(lèi)葡萄酒。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容