https://github.com/guipsamora/pandas_exercises
EX2 - あなたのデータを取得し、知ります
今回は、インターネットから直接データを取得しようとしています。
:に感謝https://github.com/justmarkhamデータセットと材料を共有するため。
ステップ1.インポートに必要なライブラリ
import pandas as pd
import numpy as np
ステップ2.インポートし、このデータセットからのアドレス。
ステップ3. chipoという変数に割り当てます。
url = 'https://raw.githubusercontent.com/justmarkham/DAT8/master/data/chipotle.tsv'
chipo = pd.read_csv(url,sep='\t')
ステップ4は、最初の10の項目を参照してください。
# Solution 1
chipo[:10]
|
ORDER_ID |
量 |
項目名 |
choice_description |
ITEM_PRICE |
0 |
1 |
1 |
チップとフレッシュトマトのサルサ |
NaNの |
$ 2.39 |
1 |
1 |
1 |
Izze |
[クレメンタイン] |
$ 3.39 |
2 |
1 |
1 |
ナンタケット島ネクター |
[林檎] |
$ 3.39 |
3 |
1 |
1 |
チップとトマティログリーンチリサルサ |
NaNの |
$ 2.39 |
4 |
2 |
2 |
チキンボウル |
[トマティロレッドチリサルサ(ホット)、[ブラックビーンズ... |
$ 16.98 |
5 |
3 |
1 |
チキンボウル |
[フレッシュトマトサルサ(マイルド)、[ライス、チーズ、ソウ... |
$ 10.98 |
6 |
3 |
1 |
チップの側面 |
NaNの |
$ 1.69 |
7 |
4 |
1 |
ステーキブリトー |
[トマティロレッドチリサルサ、[ファヒータ野菜... |
$ 11.75 |
8 |
4 |
1 |
ステーキソフトタコス |
[トマティログリーンチリサルサ、[ピントビーンズ、Chの... |
$ 9.25 |
9 |
5 |
1 |
ステーキブリトー |
[フレッシュトマトサルサ、[米、黒豆、ピント... |
$ 9.25 |
# Solution 2
chipo.head(10)
|
ORDER_ID |
量 |
項目名 |
choice_description |
ITEM_PRICE |
0 |
1 |
1 |
チップとフレッシュトマトのサルサ |
NaNの |
$ 2.39 |
1 |
1 |
1 |
Izze |
[クレメンタイン] |
$ 3.39 |
2 |
1 |
1 |
ナンタケット島ネクター |
[林檎] |
$ 3.39 |
3 |
1 |
1 |
チップとトマティログリーンチリサルサ |
NaNの |
$ 2.39 |
4 |
2 |
2 |
チキンボウル |
[トマティロレッドチリサルサ(ホット)、[ブラックビーンズ... |
$ 16.98 |
5 |
3 |
1 |
チキンボウル |
[フレッシュトマトサルサ(マイルド)、[ライス、チーズ、ソウ... |
$ 10.98 |
6 |
3 |
1 |
チップの側面 |
NaNの |
$ 1.69 |
7 |
4 |
1 |
ステーキブリトー |
[トマティロレッドチリサルサ、[ファヒータ野菜... |
$ 11.75 |
8 |
4 |
1 |
ステーキソフトタコス |
[トマティログリーンチリサルサ、[ピントビーンズ、Chの... |
$ 9.25 |
9 |
5 |
1 |
ステーキブリトー |
[フレッシュトマトサルサ、[米、黒豆、ピント... |
$ 9.25 |
ステップ5は、データセット内の観測値の数は何ですか?
type(chipo)
pandas.core.frame.DataFrame
# Solution 1
len(chipo.index)
4622
# Solution 2
chipo.shape[0]
4622
# Solution 3
chipo.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4622 entries, 0 to 4621
Data columns (total 5 columns):
order_id 4622 non-null int64
quantity 4622 non-null int64
item_name 4622 non-null object
choice_description 3376 non-null object
item_price 4622 non-null object
dtypes: int64(2), object(3)
memory usage: 180.7+ KB
ステップ6.データセット内の列数とは何ですか?
# Solution 1
len(chipo.columns)
5
# Solution 2
chipo.shape[1]
5
ステップ7.すべての列の名前を印刷します。
list(chipo.columns)
['order_id', 'quantity', 'item_name', 'choice_description', 'item_price']
ステップ8.どのようにデータセットがインデックス化されましたか?
chipo.index
RangeIndex(start=0, stop=4622, step=1)
ステップ9.最も注文した品物でしたか?
c = chipo.groupby('item_name')
c = c.sum()
c = c.sort_values(['quantity'],ascending=False)
c['quantity'].head(1)
item_name
Chicken Bowl 761
Name: quantity, dtype: int64
最も-注文項目について、ステップ10は、どのように多くのアイテムを注文したのですか?
c = chipo.groupby('item_name')
c = c.sum()
c = c.sort_values(['quantity'],ascending=False)
c['quantity'].head(1)
item_name
Chicken Bowl 761
Name: quantity, dtype: int64
ステップ11. choice_description列の中で最も注文した品物は何でしたか?
c = chipo.groupby('choice_description')
c = c.sum()
c = c.sort_values(['quantity'],ascending=False)
c.head(1)
|
ORDER_ID |
量 |
choice_description |
|
|
[ダイエットコーラ] |
123455 |
159 |
ステップ12は、どのように多くの項目の合計でorderdましたか?
chipo['quantity'].sum()
4972
ステップ13は、フロートに商品の価格を回し
ステップ13.a. 商品の価格タイプをチェック
chipo['item_price'].dtypes
dtype('O')
ステップ13.b. ラムダ関数を作成し、商品の価格の種類を変更します
chipo['item_price'] = chipo['item_price'].apply(lambda x:x.replace('$','')).astype(np.float64);
# dollarizer = lambda x:float(x[1:-1])
# chipo.item_price = chipo.item_price.apply(dollarizer)
ステップ13.c. 商品の価格タイプをチェック
chipo['item_price'].dtypes
dtype('float64')
データセットの期間の売上高はどのくらいステップ14でしたか?
(chipo['quantity']*chipo['item_price']).sum()
39237.02
ステップ15.どのように多くの注文が期間中に行われましたか?
# Solution 1
g = chipo.groupby(['order_id'])
g.ngroups
1834
# Solution 2
orders = chipo.order_id.value_counts().count()
orders
1834
ステップ16.オーダーあたりの平均収入額とは何ですか?
# Solution 1
chipo['revenue'] = chipo['quantity']*chipo['item_price']
order_grouped = chipo.groupby(by=['order_id']).sum()
order_grouped.mean()['revenue']
21.394231188658654
# Solution 2
chipo.groupby(by=['order_id']).sum().mean()['revenue']
21.394231188658654
ステップ17.どのように多くの異なるアイテム販売されていますか?
chipo.item_name.value_counts().count()
50