新しい特徴量の生成

Pythonによる探索的データ分析

George Boorman

Curriculum Manager, DataCamp

相関

sns.heatmap(planes.corr(numeric_only=True), annot=True)
plt.show()

Heatmap showing 0.54 Pearson correlation coefficient between Price and Duration

Pythonによる探索的データ分析

データ型の確認

print(planes.dtypes)
Airline                    object
Date_of_Journey    datetime64[ns]
Source                     object
Destination                object
Route                      object
Dep_Time           datetime64[ns]
Arrival_Time       datetime64[ns]
Duration                  float64
Total_Stops                object
Additional_Info            object
Price                     float64
dtype: object
Pythonによる探索的データ分析

経由回数

print(planes["Total_Stops"].value_counts())
1 stop      4107
non-stop    2584
2 stops     1127
3 stops       29
4 stops        1
Name: Total_Stops, dtype: int64
Pythonによる探索的データ分析

経由回数のクリーニング

planes["Total_Stops"] = planes["Total_Stops"].str.replace(" stops", "")

planes["Total_Stops"] = planes["Total_Stops"].str.replace(" stop", "")
planes["Total_Stops"] = planes["Total_Stops"].str.replace("non-stop", "0")
planes["Total_Stops"] = planes["Total_Stops"].astype(int)
Pythonによる探索的データ分析

相関

sns.heatmap(planes.corr(numeric_only=True), annot=True)
plt.show()

Heatmap showing 0.62 Pearson correlation coefficient between Price and Total Stops and 0.74 correlation between Duration and Total Stops

Pythonによる探索的データ分析

日付

print(planes.dtypes)
Airline                    object
Date_of_Journey    datetime64[ns]
Source                     object
Destination                object
Route                      object
Dep_Time           datetime64[ns]
Arrival_Time       datetime64[ns]
Duration                  float64
Total_Stops                 int64
Additional_Info            object
Price                     float64
dtype: object
Pythonによる探索的データ分析

月と曜日の抽出

planes["month"] = planes["Date_of_Journey"].dt.month

planes["weekday"] = planes["Date_of_Journey"].dt.weekday
print(planes[["month", "weekday", "Date_of_Journey"]].head())
   month  weekday   Date_of_Journey
0      9        4        2019-09-06
1     12        3        2019-12-05
2      1        3        2019-01-03
3      6        0        2019-06-24
4     12        1        2019-12-03
Pythonによる探索的データ分析

出発・到着時刻

planes["Dep_Hour"] = planes["Dep_Time"].dt.hour
planes["Arrival_Hour"] = planes["Arrival_Time"].dt.hour
Pythonによる探索的データ分析

相関

Heatmap showing no relationship between datetime attributes and price

Pythonによる探索的データ分析

カテゴリを作成

print(planes["Price"].describe())
count     7848.000000
mean      9035.413609
std       4429.822081
min       1759.000000
25%       5228.000000
50%       8355.000000
75%      12373.000000
max      54826.000000
Name: Price, dtype: float64
価格帯 チケット種別
<= 5228 エコノミー
> 5228 <= 8355 プレミアムエコノミー
> 8335 <= 12373 ビジネスクラス
> 12373 ファーストクラス
Pythonによる探索的データ分析

記述的分析

twenty_fifth = planes["Price"].quantile(0.25)

median = planes["Price"].median()
seventy_fifth = planes["Price"].quantile(0.75)
maximum = planes["Price"].max()
Pythonによる探索的データ分析

ラベルとビン

labels = ["Economy", "Premium Economy", "Business Class", "First Class"]

bins = [0, twenty_fifth, median, seventy_fifth, maximum]
Pythonによる探索的データ分析

pd.cut()

Call pd-dot-cut

planes["Price_Category"] = pd.cut(


Pythonによる探索的データ分析

pd.cut()

Pass the data

planes["Price_Category"] = pd.cut(planes["Price"],


Pythonによる探索的データ分析

pd.cut()

Set the labels

planes["Price_Category"] = pd.cut(planes["Price"],
                                  labels=labels,

Pythonによる探索的データ分析

pd.cut()

Provide the bins

planes["Price_Category"] = pd.cut(planes["Price"],
                                  labels=labels,
                                  bins=bins)
Pythonによる探索的データ分析

価格カテゴリ

print(planes[["Price","Price_Category"]].head())
     Price   Price_Category
0  13882.0      First Class
1   6218.0  Premium Economy
2  13302.0      First Class
3   3873.0          Economy
4  11087.0   Business Class
Pythonによる探索的データ分析

航空会社別の価格カテゴリ

sns.countplot(data=planes, x="Airline", hue="Price_Category")
plt.show()
Pythonによる探索的データ分析

航空会社別の価格カテゴリ

Countplot showing the number of flights per airline in different price categories, with Jet Airways having the largest number of First Class tickets

Pythonによる探索的データ分析

お疲れさまでした!

Pythonによる探索的データ分析

Preparing Video For Download...