パンダ演習1

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

おすすめ

転載: www.cnblogs.com/pkuimyy/p/11505970.html