#%%
import numpy as np
import pandas as pd
#%%
product_df = pd.read_csv()
review_df = pd.read_csv()
flipkart_df = pd.merge(
product_df,
review_df,
left_on="id",
right_on='product__id',
how='right', # Review에 있는 id, 즉 product__id를 기준으로 데이터를 생성합니다. 만약 "product" 정보가 반드시 존재하는 review들로만 데이터를 구성하고 싶으면 "left"로 하시면 됩니다.
)
flipkart_df = flipkart_df.drop(['id', 'product__id', 'author'], axis=1)
flipkart_df.head(2)
amazon_df = pd.read_csv()
df = pd.concat([amazon_df, flipkart_df], axis=0)
df.head()
df.tail()
df['date'] = pd.to_datetime(df['date'])
df['price'] = df['price'].astype(float)
df.set_index('date', inplace=True)
df = df.loc[:"2017-12-31"] # 비록 DatetimeIndex이지만, 날짜를 문자열 string으로 표현하여 loc을 이용한 range indexing이 가능합니다.
df.rename(columns={'title_x':'name', 'title_y':'title'}, inplace=True)
df['price_grp'] = pd.cut(df['price'], [0, 5000, 15000, 200000], labels=["저가", "중가", "고가"])
# 전체제품 기간별 제품 평균가
# 아래에서 보이시는 것처럼 groupby()의 인자에는 반드시 'column명'이 아니어도 됩니다.
# 아래 예제처럼 df라는 object로부터 추출할 수 있는(여기서는 df.index에서 추출한) categorical 변수들을 사용해도 됩니다.
df.groupby([df.index.year, df.index.quarter]).agg({'price':'mean'})
df.groupby([df.index.year, df.index.quarter]).agg({'price':'mean'}).plot(kind='bar')
ax = df.resample("Q")['price'].mean().plot();
ax.set_title("기간별 제품 평균가격")
ax.set_xlabel("기 간")
ax.set_ylabel("가 격")
df.groupby(['brand']).agg({'name':'count'}).plot(kind='bar', figsize=(8,5));