Data Preprocessing and Visualization with Google Sheet and Google Data Studio

# https://console.developers.google.com/
# Google Sheets API
import pandas as pd
import pandasql
url = 'https://docs.google.com/spreadsheets/d/1k4z-q_DRc3chyf1jYqOCV4UfGGiRgC6FJ4K1e_qZUZ8/edit?usp=sharing'
# pip install oauth2client gspread
from oauth2client.service_account import ServiceAccountCredentials
import gspread

scope = ['https://www.googleapis.com/auth/spreadsheets']
credentials = ServiceAccountCredentials.from_json_keyfile_name('my_json_file.json', scope)
client = gspread.authorize(credentials)
sheet = client.open_by_url(url)
worksheet = sheet.get_worksheet(0)
results = worksheet.get_all_records()
result_df = pd.DataFrame(results)
result_df.columns
len(result_df.columns)
result_df.head()
qdf =  pandasql.sqldf("select ชื่อทีมที่รับการประเมิน from result_df group by ชื่อทีมที่รับการประเมิน")

qdf.head(20)
qdf =  pandasql.sqldf("select [ให้ความคิดเห็นโดยทีม......] from result_df group by [ให้ความคิดเห็นโดยทีม......]")

qdf.head(20)
result_df['ให้ความคิดเห็นโดยทีม'] = result_df['ให้ความคิดเห็นโดยทีม......'].fillna('').apply(lambda x: x.strip().lower())
result_df.head()
result_df.columns
len(result_df.columns)
qdf =  pandasql.sqldf("select ให้ความคิดเห็นโดยทีม from result_df group by ให้ความคิดเห็นโดยทีม")

qdf.head(20)
result_df.loc[result_df.ให้ความคิดเห็นโดยทีม == 'ทีมข้าวเหนียวมะม่วง', 'ให้ความคิดเห็นโดยทีม'] = 'ข้าวเหนียวมะม่วง'
qdf =  pandasql.sqldf("select ให้ความคิดเห็นโดยทีม from result_df group by ให้ความคิดเห็นโดยทีม")

qdf.head(20)
result_df.loc[result_df.ให้ความคิดเห็นโดยทีม == 'อะหรือ..อะหรือ', 'ให้ความคิดเห็นโดยทีม'] = 'อะหรือ อะหรือ'
result_df.loc[result_df.ให้ความคิดเห็นโดยทีม == 'อะหรืออะหรือ', 'ให้ความคิดเห็นโดยทีม'] = 'อะหรือ อะหรือ'
result_df.loc[result_df.ให้ความคิดเห็นโดยทีม == 'โรตี ไข่ดาว', 'ให้ความคิดเห็นโดยทีม'] = 'โรตีไข่ดาว'
qdf =  pandasql.sqldf("select ให้ความคิดเห็นโดยทีม from result_df group by ให้ความคิดเห็นโดยทีม")

qdf.head(20)
result_df.columns.to_list()
column_name = result_df.columns.to_list()
column_name.remove('ให้ความคิดเห็นโดยทีม......')
column_name
result_df.to_csv('result.csv', encoding='utf8', columns = column_name, index=False)
qdf =  pandasql.sqldf("select ชื่อทีมที่รับการประเมิน, sum([ความสมเหตุสมผล ของคำตอบที่เพื่อน comment])/count(*) as q1 from result_df group by ชื่อทีมที่รับการประเมิน")

qdf.head(20)
q1 = 'sum([ความสมเหตุสมผล ของคำตอบที่เพื่อน comment])/count(*) as q1'
q2 = 'sum([การประเมินข้อจำกัด หรือความเสี่ยง ที่อาจทำให้ผลิตภัณฑ์ไม่สามารถใช้งานได้])/count(*) as q2'
q3 = 'sum([ความเหมาะสมของการหาข้อมูลลักษณะของรายได้])/count(*) as q3'
q4 = 'sum([ความเหมาะสมของการหาข้อมูลคู่แข่งของผลิตภัณฑ์])/count(*) as q4'
sql = "select ชื่อทีมที่รับการประเมิน, %s, %s, %s, %s from result_df group by ชื่อทีมที่รับการประเมิน" % (q1, q2, q3, q4)
sql
sum_report =  pandasql.sqldf(sql)

sum_report.head(20)
sum_report['sum'] = sum_report.sum(axis=1)
sum_report.head(20)
qdf =  pandasql.sqldf("select * from sum_report order by sum desc")

qdf.head(20)
qdf.to_csv('score.csv', encoding='utf8', index=False)
# https://datastudio.google.com/