แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ API-แƒ˜แƒ—

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒแƒ› แƒ™แƒแƒ แƒ’แƒแƒ“ แƒ“แƒแƒแƒ›แƒขแƒ™แƒ˜แƒชแƒ แƒ—แƒแƒ•แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ แƒแƒ“แƒฃแƒฅแƒขแƒ˜แƒก แƒแƒœแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ•แƒ˜แƒ–แƒฃแƒแƒšแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ. แƒ“แƒ แƒฎแƒจแƒ˜แƒ แƒแƒ“ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒชแƒ˜แƒ˜แƒก แƒ›แƒแƒ“แƒ”แƒšแƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒœ แƒ“แƒแƒคแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒกแƒฎแƒ•แƒ BI แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒจแƒ˜. แƒแƒกแƒ”แƒ—แƒ˜ แƒ—แƒแƒฆแƒšแƒ˜แƒ—แƒแƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ Amplitude-แƒ“แƒแƒœ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒœแƒ”แƒ“แƒšแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ—. แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒ’แƒ”แƒขแƒงแƒ•แƒ˜แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ”แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒชแƒแƒ“แƒœแƒ˜แƒ—.

แƒฌแƒ˜แƒœแƒแƒžแƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜

  1. แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒกแƒฌแƒแƒ แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒ–แƒ” แƒกแƒขแƒแƒขแƒ˜แƒกแƒขแƒ˜แƒ™แƒ แƒ’แƒ แƒแƒ•แƒ“แƒ”แƒ‘แƒ
  2. แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒžแƒ˜แƒ—แƒแƒœแƒ˜ (แƒ›แƒ” แƒ•แƒ›แƒฃแƒจแƒแƒแƒ‘ 3.8.3 แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒจแƒ˜), แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒœแƒแƒช แƒžแƒแƒขแƒ”แƒœแƒชแƒ˜แƒฃแƒ  แƒ›แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒšแƒก แƒฃแƒ™แƒ•แƒ” แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒ›แƒ˜แƒœแƒ˜แƒ›แƒฃแƒ› แƒกแƒแƒ‘แƒแƒ–แƒ˜แƒกแƒ แƒ“แƒแƒœแƒ”แƒ–แƒ”

แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ˜แƒก

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 1. API-แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ

แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒกแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ“, แƒฏแƒ”แƒ  แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— API แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜.

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ’แƒ–แƒ˜แƒ—:

  1. "แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ" (แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ”แƒแƒ‘แƒก แƒ”แƒ™แƒ แƒแƒœแƒ˜แƒก แƒฅแƒ•แƒ”แƒ“แƒ แƒ›แƒแƒ แƒชแƒฎแƒ”แƒœแƒ แƒ›แƒฎแƒแƒ แƒ”แƒก)
  2. แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒฉแƒแƒ›แƒแƒ˜แƒขแƒ•แƒ˜แƒ แƒ—แƒ”แƒ‘แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒ— แƒ›แƒแƒกแƒ–แƒ”
  3. แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒ”แƒœแƒ˜แƒฃแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒฎแƒกแƒœแƒ”แƒ‘แƒ, แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒ— "แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜"
  4. แƒฉแƒ•แƒ”แƒœ แƒ•แƒžแƒแƒฃแƒšแƒแƒ‘แƒ— API-แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒ”แƒ‘แƒก, แƒ•แƒแƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ“แƒ แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒ›แƒแƒ— แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒก.

แƒ“แƒแƒฌแƒ™แƒแƒžแƒฃแƒœแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฐแƒงแƒ•แƒ”แƒ— แƒ‘แƒ›แƒฃแƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ–แƒแƒ’แƒแƒ“แƒแƒ“ แƒแƒกแƒ” แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ:
analytics.amplitude.com/$$$$$$$$/manage/project/******/settings,
แƒกแƒแƒ“แƒแƒช $$$$$$ แƒแƒ แƒ˜แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒ•แƒšแƒ, ****** แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 2: แƒกแƒแƒญแƒ˜แƒ แƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ

แƒ™แƒแƒ แƒ’แƒ˜ แƒแƒ›แƒ‘แƒแƒ•แƒ˜ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒฅแƒ•แƒ— แƒ”แƒก แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜ แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒแƒ“ แƒ“แƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœ แƒ’แƒแƒ“แƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ—. แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ“แƒ˜ แƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒ แƒแƒก (แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜ แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒกแƒแƒ“แƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ):

  1. แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜ (2.10.0) - แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ api-แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒ”แƒ‘แƒแƒ“
  2. pandas (1.0.1) - json-แƒ˜แƒก แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒคแƒแƒ˜แƒšแƒจแƒ˜ แƒฉแƒแƒฌแƒ”แƒ แƒ
  3. zipfile - แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ— แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ API-แƒ˜แƒ— แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ
  4. gzip - json แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒšแƒแƒ’แƒ”แƒ‘แƒ .gz-แƒ“แƒแƒœ
  5. os - แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒจแƒ”แƒฃแƒคแƒฃแƒ—แƒแƒ•แƒ˜ แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ
  6. แƒ“แƒ แƒ - แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ , แƒ’แƒแƒ–แƒแƒ›แƒ”แƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒ
  7. tqdm - แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒกแƒแƒ›แƒ”แƒ‘แƒ , แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒ”แƒกแƒ˜แƒก แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ

แƒ›แƒ˜แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ: แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒกแƒ แƒฃแƒšแƒ˜ แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก; แƒกแƒฃแƒ แƒ•แƒ˜แƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒแƒ˜แƒฆแƒแƒ— แƒ˜แƒ’แƒ˜ แƒ“แƒ แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒแƒ— แƒœแƒแƒ‘แƒ˜แƒฏ-แƒœแƒแƒ‘แƒ˜แƒฏ แƒแƒฎแƒกแƒœแƒ-แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒก.

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.1. แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ˜แƒ›แƒžแƒแƒ แƒขแƒ˜แƒ แƒ”แƒ‘แƒ— แƒ›แƒ”แƒแƒ แƒ” แƒ”แƒขแƒแƒžแƒ–แƒ” แƒฉแƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒš แƒงแƒ•แƒ”แƒšแƒ แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒแƒก.

# ะ˜ะผะฟะพั€ั‚ ะฑะธะฑะปะธะพั‚ะตะบ
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.2. แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒแƒ–แƒ” แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒแƒฆแƒ›แƒแƒ•แƒแƒฉแƒ˜แƒœแƒแƒ— แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ แƒ“แƒ แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜ a.

แƒ“แƒแƒฌแƒงแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ แƒ˜แƒฆแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒ–แƒ” แƒ“แƒ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒšแƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜; แƒ—แƒแƒ แƒ˜แƒฆแƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒแƒ— แƒกแƒแƒแƒ—แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒแƒจแƒ˜ "T"-แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒ—.

api_key แƒ“แƒ secret_key แƒจแƒ”แƒ”แƒกแƒแƒ‘แƒแƒ›แƒ”แƒ‘แƒ แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ”แƒขแƒแƒžแƒ–แƒ” แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒš แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒก; แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ›แƒ” แƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ”แƒ‘แƒก แƒแƒฅ แƒฉแƒ”แƒ›แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“.

a = time.time()
# ะŸะฐั€ะฐะผะตั‚ั€ั‹ ะฝะฐั‡ะฐะปัŒะฝะพะน ะธ ะบะพะฝะตั‡ะฝะพะน ะดะฐั‚ั‹
startdate = '20200627'
enddate = '20200628'

api_key = 'kldfg844203rkwekfjs9234'
secret_key = '094tfjdsfmw93mxwfek'
# ะžั‚ะฟั€ะฐะฒะปะตะฝะธะต ะทะฐะฟั€ะพัะฐ ะฒ Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. ะ—ะฐะฟั€ะพั ะพั‚ะฟั€ะฐะฒะปะตะฝ')

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.3. แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒก แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒ—

แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ’แƒแƒœแƒ”แƒ‘แƒ— แƒกแƒแƒฎแƒ”แƒšแƒก แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ•แƒฌแƒ”แƒ แƒ— แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜. แƒฉแƒ”แƒ›แƒ˜ แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ›แƒ” แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ• แƒžแƒ”แƒ แƒ˜แƒแƒ“แƒก + แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒ”แƒก แƒแƒ แƒ˜แƒก แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜, แƒฉแƒ•แƒ”แƒœ แƒแƒ แƒฅแƒ˜แƒ•แƒจแƒ˜ แƒฉแƒแƒ•แƒฌแƒ”แƒ แƒ— แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒ“แƒแƒœ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒš แƒžแƒแƒกแƒฃแƒฎแƒก.

# ะกะบะฐั‡ะธะฒะฐะฝะธะต ะฐั€ั…ะธะฒะฐ ั ะดะฐะฝะฝั‹ะผะธ
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ัƒัะฟะตัˆะฝะพ ัะบะฐั‡ะฐะฝ')  

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.4. แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒซแƒ˜แƒ”แƒ‘แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒ˜แƒก แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ”แƒ“แƒแƒœ

zipfile แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒแƒจแƒ˜. แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒกแƒขแƒ แƒ˜แƒฅแƒแƒœแƒจแƒ˜ แƒคแƒ แƒ—แƒฎแƒ˜แƒšแƒแƒ“ แƒ˜แƒงแƒแƒ•แƒ˜แƒ— แƒ“แƒ แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ’แƒ–แƒ, แƒกแƒแƒ“แƒแƒช แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ.

# ะ˜ะทะฒะปะตั‡ะตะฝะธะต ั„ะฐะนะปะพะฒ ะฒ ะฟะฐะฟะบัƒ ะฝะฐ ะบะพะผะฟัŒัŽั‚ะตั€ะต
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ะธะทะฒะปะตั‡ะตะฝ ะธ ะทะฐะฟะธัะฐะฝ ะฒ ะฟะฐะฟะบัƒ ' + filename)

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.5. json แƒ™แƒแƒœแƒ•แƒ”แƒ แƒขแƒแƒชแƒ˜แƒ

แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒฅแƒ˜แƒ•แƒ˜แƒ“แƒแƒœ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒงแƒ•แƒแƒœแƒแƒ— json แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ .gz แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜ แƒ“แƒ แƒฉแƒแƒฌแƒ”แƒ แƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒจแƒ˜ แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ’แƒ—แƒฎแƒแƒ•แƒ— แƒ’แƒแƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒแƒ—, แƒ แƒแƒ› แƒแƒฅ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ’แƒ–แƒ แƒ˜แƒกแƒ”แƒ• แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ–แƒ” แƒ“แƒ 000000-แƒ˜แƒก แƒœแƒแƒชแƒ•แƒšแƒแƒ“ แƒฉแƒแƒฌแƒ”แƒ แƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒœแƒแƒ›แƒ”แƒ แƒ˜ Amplitude-แƒ“แƒแƒœ (แƒแƒœ แƒฎแƒ”แƒšแƒ˜แƒ— แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ’แƒ–แƒ, แƒกแƒแƒ“แƒแƒช แƒแƒ แƒฅแƒ˜แƒ•แƒ˜ แƒ˜แƒฅแƒœแƒ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ แƒจแƒ”แƒฎแƒ”แƒ“แƒ”แƒ— แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒกแƒแƒฅแƒแƒฆแƒแƒšแƒ“แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒก).

แฒฌแƒ”แƒกแƒ˜แƒ—:

แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜, แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒ“แƒแƒœ, แƒชแƒแƒ แƒ˜แƒ”แƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ, time.sleep(1) tqdm-แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒฌแƒแƒ แƒแƒ“ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒชแƒ˜แƒ™แƒšแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒ•แƒฎแƒกแƒœแƒ˜แƒ— .gz แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒ“แƒ แƒ›แƒแƒจแƒ˜แƒœแƒ•แƒ” แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒžแƒแƒœแƒ“แƒแƒ”แƒ‘แƒก json-แƒ˜แƒก แƒฌแƒแƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒแƒ“ แƒ“แƒ แƒจแƒ”แƒ•แƒกแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒ.

# ะŸั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธะต json ะบ ะพะฑั‹ั‡ะฝะพะผัƒ ั‚ะฐะฑะปะธั‡ะฝะพะผัƒ ั„ะพั€ะผะฐั‚ัƒ
directory = 'C:\Users\...\'+filename+'
# ะŸั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธะต json ะบ ะพะฑั‹ั‡ะฝะพะผัƒ ั‚ะฐะฑะปะธั‡ะฝะพะผัƒ ั„ะพั€ะผะฐั‚ัƒ
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('ะŸั€ะพะณั€ะตัั ะพะฑั€ะฐะฑะพั‚ะบะธ ั„ะฐะนะปะพะฒ:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)    
print('4. JSON ั„ะฐะนะปั‹ ะธะท ะฐั€ั…ะธะฒะฐ ัƒัะฟะตัˆะฝะพ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝั‹ ะธ ะทะฐะฟะธัะฐะฝั‹ ะฒ dataframe')
0000' files = os.listdir(directory) amplitude_dataframe = pd.DataFrame() print('ะŸั€ะพะณั€ะตัั ะพะฑั€ะฐะฑะพั‚ะบะธ ั„ะฐะนะปะพะฒ:') time.sleep(1) for i in tqdm(files): with gzip.open(directory + '\' + i) as f: add = pd.read_json(f, lines = 'True') amplitude_dataframe = pd.concat([amplitude_dataframe, add]) time.sleep(1) print('4. JSON ั„ะฐะนะปั‹ ะธะท ะฐั€ั…ะธะฒะฐ ัƒัะฟะตัˆะฝะพ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝั‹ ะธ ะทะฐะฟะธัะฐะฝั‹ ะฒ dataframe')

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.6. แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒก แƒฉแƒแƒฌแƒ”แƒ แƒ แƒ”แƒฅแƒกแƒ”แƒšแƒจแƒ˜

Excel-แƒ–แƒ” แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜แƒ แƒแƒฅ. แƒฎแƒจแƒ˜แƒ  แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒš แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒฉแƒแƒ แƒฉแƒแƒกแƒ—แƒแƒœ แƒžแƒ˜แƒ—แƒแƒœแƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ— แƒแƒœ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒแƒจแƒ˜.

แƒแƒฅ แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ‘แƒ˜แƒšแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜แƒ—.

# ะ—ะฐะฟะธัะฐั‚ัŒ ะฟะพะปัƒั‡ะตะฝะฝะพะน ั‚ะฐะฑะปะธั†ั‹ ะฒ Excel-ั„ะฐะนะป
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe ัƒัะฟะตัˆะฝะพ ะทะฐะฟะธัะฐะฝ ะฒ ั„ะฐะนะป ' + filename)

แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ 3.7. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ—แƒ•แƒšแƒ˜แƒ— แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก

แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒ“แƒ แƒแƒ˜แƒก แƒฉแƒแƒฌแƒ”แƒ แƒ b แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜, แƒกแƒฎแƒ•แƒแƒแƒ‘แƒ˜แƒก แƒ“แƒ แƒฌแƒฃแƒ—แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ, แƒฏแƒแƒ›แƒฃแƒ แƒ˜ แƒฌแƒฃแƒ—แƒ”แƒ‘แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ‘แƒแƒšแƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜.

b = time.time()
diff = b-a
minutes = diff//60
print('ะ’ั‹ะฟะพะปะฝะตะฝะธะต ะบะพะดะฐ ะทะฐะฝัะปะพ: {:.0f} ะผะธะฝัƒั‚(ั‹)'.format( minutes))

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ แƒ”แƒ™แƒแƒ— แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒ›แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ amplitude_dataframe แƒชแƒ•แƒšแƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜. แƒ›แƒแƒก แƒ”แƒฅแƒœแƒ”แƒ‘แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— 50 แƒกแƒ•แƒ”แƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ 80% แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ—: event_type - แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜, event_properties - แƒฆแƒแƒœแƒ˜แƒกแƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, event_time - แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒ“แƒ แƒ, uuid - แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก ID, user_properties - แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜, แƒฏแƒ”แƒ  แƒ›แƒแƒ—แƒ—แƒแƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ. . แƒ“แƒ แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒแƒ“แƒแƒ แƒ”แƒ‘แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ”แƒ‘แƒก แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒก แƒ“แƒแƒคแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ“แƒ˜แƒ™แƒแƒขแƒแƒ แƒ”แƒ‘แƒ—แƒแƒœ, แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ’แƒ•แƒแƒ•แƒ˜แƒฌแƒงแƒ“แƒ”แƒก, แƒ แƒแƒ› แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒ›แƒ”แƒ—แƒแƒ“แƒแƒšแƒแƒ’แƒ˜แƒแƒก แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜แƒก/แƒซแƒแƒ‘แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒ—แƒ•แƒšแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒ.แƒจ. แƒ“แƒ แƒกแƒแƒœแƒแƒ› แƒแƒ›แƒแƒก แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ—, แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒแƒ›แƒžแƒšแƒ˜แƒขแƒฃแƒ“แƒ˜แƒก แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ.

แฒ’แƒ›แƒแƒ“แƒšแƒแƒ‘แƒ— แƒงแƒฃแƒ แƒแƒ“แƒฆแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก! แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒœแƒ”แƒ“แƒšแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ Amplitude-แƒจแƒ˜ แƒ“แƒ แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒจแƒ˜.

แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒชแƒ”แƒœแƒแƒ แƒ˜:

# ะ˜ะผะฟะพั€ั‚ ะฑะธะฑะปะธะพั‚ะตะบ
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# ะŸะฐั€ะฐะผะตั‚ั€ั‹ ะฝะฐั‡ะฐะปัŒะฝะพะน ะธ ะบะพะฝะตั‡ะฝะพะน ะดะฐั‚ั‹
startdate = '20200627'
enddate = '20200628'

api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# ะžั‚ะฟั€ะฐะฒะปะตะฝะธะต ะทะฐะฟั€ะพัะฐ ะฒ Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. ะ—ะฐะฟั€ะพั ะพั‚ะฟั€ะฐะฒะปะตะฝ')

# ะกะบะฐั‡ะธะฒะฐะฝะธะต ะฐั€ั…ะธะฒะฐ ั ะดะฐะฝะฝั‹ะผะธ
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ัƒัะฟะตัˆะฝะพ ัะบะฐั‡ะฐะฝ')  

# ะ˜ะทะฒะปะตั‡ะตะฝะธะต ั„ะฐะนะปะพะฒ ะฒ ะฟะฐะฟะบัƒ ะฝะฐ ะบะพะผะฟัŒัŽั‚ะตั€ะต
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ะธะทะฒะปะตั‡ะตะฝ ะธ ะทะฐะฟะธัะฐะฝ ะฒ ะฟะฐะฟะบัƒ ' + filename)

# ะŸั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธะต json ะบ ะพะฑั‹ั‡ะฝะพะผัƒ ั‚ะฐะฑะปะธั‡ะฝะพะผัƒ ั„ะพั€ะผะฐั‚ัƒ
directory = 'C:\Users\...\'+filename+'
# ะ˜ะผะฟะพั€ั‚ ะฑะธะฑะปะธะพั‚ะตะบ
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# ะŸะฐั€ะฐะผะตั‚ั€ั‹ ะฝะฐั‡ะฐะปัŒะฝะพะน ะธ ะบะพะฝะตั‡ะฝะพะน ะดะฐั‚ั‹
startdate = '20200627'
enddate = '20200628'
api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# ะžั‚ะฟั€ะฐะฒะปะตะฝะธะต ะทะฐะฟั€ะพัะฐ ะฒ Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. ะ—ะฐะฟั€ะพั ะพั‚ะฟั€ะฐะฒะปะตะฝ')
# ะกะบะฐั‡ะธะฒะฐะฝะธะต ะฐั€ั…ะธะฒะฐ ั ะดะฐะฝะฝั‹ะผะธ
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ัƒัะฟะตัˆะฝะพ ัะบะฐั‡ะฐะฝ')  
# ะ˜ะทะฒะปะตั‡ะตะฝะธะต ั„ะฐะนะปะพะฒ ะฒ ะฟะฐะฟะบัƒ ะฝะฐ ะบะพะผะฟัŒัŽั‚ะตั€ะต
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. ะั€ั…ะธะฒ ั ั„ะฐะนะปะฐะผะธ ะธะทะฒะปะตั‡ะตะฝ ะธ ะทะฐะฟะธัะฐะฝ ะฒ ะฟะฐะฟะบัƒ ' + filename)
# ะŸั€ะตะพะฑั€ะฐะทะพะฒะฐะฝะธะต json ะบ ะพะฑั‹ั‡ะฝะพะผัƒ ั‚ะฐะฑะปะธั‡ะฝะพะผัƒ ั„ะพั€ะผะฐั‚ัƒ
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('ะŸั€ะพะณั€ะตัั ะพะฑั€ะฐะฑะพั‚ะบะธ ั„ะฐะนะปะพะฒ:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)    
print('4. JSON ั„ะฐะนะปั‹ ะธะท ะฐั€ั…ะธะฒะฐ ัƒัะฟะตัˆะฝะพ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝั‹ ะธ ะทะฐะฟะธัะฐะฝั‹ ะฒ dataframe')
# ะ—ะฐะฟะธัะฐั‚ัŒ ะฟะพะปัƒั‡ะตะฝะฝะพะน ั‚ะฐะฑะปะธั†ั‹ ะฒ Excel-ั„ะฐะนะป
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe ัƒัะฟะตัˆะฝะพ ะทะฐะฟะธัะฐะฝ ะฒ ั„ะฐะนะป ' + filename)
b = time.time()
diff = b-a
minutes = diff//60
print('ะ’ั‹ะฟะพะปะฝะตะฝะธะต ะบะพะดะฐ ะทะฐะฝัะปะพ: {:.0f} ะผะธะฝัƒั‚(ั‹)'.format( minutes))
0000' files = os.listdir(directory) amplitude_dataframe = pd.DataFrame() print('ะŸั€ะพะณั€ะตัั ะพะฑั€ะฐะฑะพั‚ะบะธ ั„ะฐะนะปะพะฒ:') time.sleep(1) for i in tqdm(files): with gzip.open(directory + '\' + i) as f: add = pd.read_json(f, lines = 'True') amplitude_dataframe = pd.concat([amplitude_dataframe, add]) time.sleep(1) print('4. JSON ั„ะฐะนะปั‹ ะธะท ะฐั€ั…ะธะฒะฐ ัƒัะฟะตัˆะฝะพ ะฟั€ะตะพะฑั€ะฐะทะพะฒะฐะฝั‹ ะธ ะทะฐะฟะธัะฐะฝั‹ ะฒ dataframe') # ะ—ะฐะฟะธัะฐั‚ัŒ ะฟะพะปัƒั‡ะตะฝะฝะพะน ั‚ะฐะฑะปะธั†ั‹ ะฒ Excel-ั„ะฐะนะป amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False) print('5. Dataframe ัƒัะฟะตัˆะฝะพ ะทะฐะฟะธัะฐะฝ ะฒ ั„ะฐะนะป ' + filename) b = time.time() diff = b-a minutes = diff//60 print('ะ’ั‹ะฟะพะปะฝะตะฝะธะต ะบะพะดะฐ ะทะฐะฝัะปะพ: {:.0f} ะผะธะฝัƒั‚(ั‹)'.format( minutes))

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ