整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          利用JavaScript方法實(shí)現(xiàn)輸入時(shí)間戳自動(dòng)轉(zhuǎn)換為

          利用JavaScript方法實(shí)現(xiàn)輸入時(shí)間戳自動(dòng)轉(zhuǎn)換為小時(shí)、天、月-功能

          行效果圖:

          運(yùn)行效果圖

          JavaScript核心代碼:

          <script>

          function gettime() {

          var date=Date.parse(new Date());

          $('#time').val(date);

          }

          function change() {

          var value=getDateDiff($('#time').val());

          $('#timedisplay').text(value);

          }

          function getDateDiff(dateTimeStamp) {

          var minute=1000 * 60;

          var hour=minute * 60;

          var day=hour * 24;

          var halfamonth=day * 15;

          var month=day * 30;

          var now=new Date().getTime();

          var diffValue=now - dateTimeStamp;

          if(diffValue < 0) {

          return;

          }

          var monthC=diffValue / month;

          var weekC=diffValue / (7 * day);

          var dayC=diffValue / day;

          var hourC=diffValue / hour;

          var minC=diffValue / minute;

          if(monthC >=1) {

          result="" + parseInt(monthC) + "個(gè)月前";

          } else if(weekC >=1) {

          result="" + parseInt(weekC) + "周前";

          } else if(dayC >=1) {

          result="" + parseInt(dayC) + "天前";

          } else if(hourC >=1) {

          result="" + parseInt(hourC) + "小時(shí)前";

          } else if(minC >=1) {

          result="" + parseInt(minC) + "分鐘前";

          } else

          result="剛剛";

          return result;

          }

          </script>

          HTML代碼:

          <label>輸入一個(gè)時(shí)間戳:</label>

          <input id="time" placeholder="輸入時(shí)間戳">

          <button onclick="gettime()">獲取當(dāng)前</button>

          <button onclick="change()">轉(zhuǎn)換</button>

          <label id="timedisplay"></label>

          寫公共方法,這里以賦值到 laytpl 對(duì)象為例

          1. 之所以將方法暴露給寫成方法,是便于能讀取到。

          2. toDateString(d, format) 方法接受兩個(gè)參數(shù)。其中 d 可以是日期對(duì)象,也可以是毫秒數(shù)。format 是日期字符的格式,你可以隨意定義,如:yyyy年MM月dd日

          在列模板中調(diào)用時(shí)間戳的處理方法

          講解:

          d.time 中的 time 即是你接口返回的字段,如果是 unix 時(shí)間戳,這里記得要 d.time*1000,如果是毫秒數(shù),這里直接傳 d.time 即可。

          者:Roman Orac
          魚羊 編譯整理
          量子位 報(bào)道 | 公眾號(hào) QbitAI

          數(shù)據(jù)分析,如何能錯(cuò)過(guò) Pandas 。

          現(xiàn)在,數(shù)據(jù)科學(xué)家 Roman Orac 分享了他在工作中相見恨晚的 Pandas 使用技巧。

          了解了這些技巧,能讓你在學(xué)習(xí)、使用 Pandas 的時(shí)候更加高效。

          話不多說(shuō),一起學(xué)習(xí)一下~

          Pandas實(shí)用技巧

          用 Pandas 做數(shù)據(jù)分析,最大的亮點(diǎn)當(dāng)屬 DataFrame。不過(guò),在展示成果的時(shí)候,常常需要把 DataFrame 轉(zhuǎn)成另一種格式。

          Pandas 在這一點(diǎn)上其實(shí)十分友好,只需添加一行代碼。

          DataFrame 轉(zhuǎn) HTML

          如果你需要用 HTML 發(fā)送自動(dòng)報(bào)告,那么 to_html 函數(shù)了解一下。

          比如,我們先設(shè)定這樣一個(gè) DataFrame:

          import numpy as np
          import pandas as pd
          import random
          
          n = 10
          df = pd.DataFrame(
              {
                  "col1": np.random.random_sample(n),
                  "col2": np.random.random_sample(n),
                  "col3": [[random.randint(0, 10) for _ in range(random.randint(3, 5))] for _ in range(n)],
              }
          )

          用上 to_html,就可以將表格轉(zhuǎn)入 html 文件:

          df_html = df.to_html()
          with open(‘a(chǎn)nalysis.html’, ‘w’) as f: f.write(df_html)

          與之配套的,是 read_html 函數(shù),可以將 HTML 轉(zhuǎn)回 DataFrame。

          DataFrame 轉(zhuǎn) LaTeX

          如果你還沒用過(guò) LaTeX 寫論文,強(qiáng)烈建議嘗試一下。

          要把 DataFrame 值轉(zhuǎn)成 LaTeX 表格,也是一個(gè)函數(shù)就搞定了:

          df.to_latex()

          DataFrame 轉(zhuǎn) Markdown

          如果你想把代碼放到 GitHub 上,需要寫個(gè) README。

          這時(shí)候,你可能需要把 DataFrame 轉(zhuǎn)成 Markdown 格式。

          Pandas 同樣為你考慮到了這一點(diǎn):

          print(df.to_markdown())

          注:這里還需要 tabulate 庫(kù)

          DataFrame 轉(zhuǎn) Excel

          說(shuō)到這里,給同學(xué)們提一個(gè)小問(wèn)題:導(dǎo)師/老板/客戶要你提供 Excel 格式的數(shù)據(jù),你該怎么做?

          當(dāng)然是——

          df.to_excel(‘a(chǎn)nalysis.xlsx’)

          需要注意的是,如果你沒有安裝過(guò) xlwtopenpyxl 這兩個(gè)工具包,需要先安裝一下。

          另外,跟 HTML 一樣,這里也有一個(gè)配套函數(shù):read_excel,用來(lái)將excel數(shù)據(jù)導(dǎo)入pandas DataFrame。

          DataFrame 轉(zhuǎn)字符串

          轉(zhuǎn)成字符串,當(dāng)然也沒問(wèn)題:

          df.to_string()

          5個(gè)鮮為人知的Pandas技巧

          此前,Roman Orac 還曾分享過(guò) 5 個(gè)他覺得十分好用,但大家可能沒有那么熟悉的 Pandas 技巧。

          1、data_range

          從外部 API 或數(shù)據(jù)庫(kù)獲取數(shù)據(jù)時(shí),需要多次指定時(shí)間范圍。

          Pandas 的 data_range 覆蓋了這一需求。

          import pandas as pd
          date_from = “2019-01-01”
          date_to = “2019-01-12”
          date_range = pd.date_range(date_from, date_to, freq=”D”)
          print(date_range)

          freq=“D”/“M”/“Y”,該函數(shù)就會(huì)分別返回按天、月、年遞增的日期。

          2、合并數(shù)據(jù)

          當(dāng)你有一個(gè)名為left的DataFrame:

          和名為right的DataFrame:

          想通過(guò)關(guān)鍵字“key”把它們整合到一起:

          實(shí)現(xiàn)的代碼是:

          df_merge = left.merge(right, on = ‘key’, how = ‘left’, indicator = True)

          3、最近合并(Nearest merge)

          在處理股票或者加密貨幣這樣的財(cái)務(wù)數(shù)據(jù)時(shí),價(jià)格會(huì)隨著實(shí)際交易變化。

          針對(duì)這樣的數(shù)據(jù),Pandas提供了一個(gè)好用的功能,merge_asof。

          該功能可以通過(guò)最近的key(比如時(shí)間戳)合并DataFrame。

          舉個(gè)例子,你有一個(gè)存儲(chǔ)報(bào)價(jià)信息的DataFrame。

          還有一個(gè)存儲(chǔ)交易信息的DataFrame。

          現(xiàn)在,你需要把兩個(gè)DataFrame中對(duì)應(yīng)的信息合并起來(lái)。

          最新報(bào)價(jià)和交易之間可能有10毫秒的延遲,或者沒有報(bào)價(jià),在進(jìn)行合并時(shí),就可以用上 merge_asof。

          pd.merge_asof(trades, quotes, on=”timestamp”, by=’ticker’, tolerance=pd.Timedelta(‘10ms’), direction=‘backward’)

          4、創(chuàng)建Excel報(bào)告

          在Pandas中,可以直接用DataFrame創(chuàng)建Excel報(bào)告。

          import numpy as np
          import pandas as pd
          
          df = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=["a", "b", "c"])
          
          report_name = 'example_report.xlsx'
          sheet_name = 'Sheet1'
          writer = pd.ExcelWriter(report_name, engine='xlsxwriter')
          df.to_excel(writer, sheet_name=sheet_name, index=False)

          不只是數(shù)據(jù),還可以添加圖表。

          # define the workbook
          workbook = writer.book
          worksheet = writer.sheets[sheet_name]
          # create a chart line object
          chart = workbook.add_chart({'type': 'line'})
          # configure the series of the chart from the spreadsheet
          # using a list of values instead of category/value formulas:
          #     [sheetname, first_row, first_col, last_row, last_col]
          chart.add_series({
              'categories': [sheet_name, 1, 0, 3, 0],
              'values':     [sheet_name, 1, 1, 3, 1],
          })
          # configure the chart axes
          chart.set_x_axis({'name': 'Index', 'position_axis': 'on_tick'})
          chart.set_y_axis({'name': 'Value', 'major_gridlines': {'visible': False}})
          # place the chart on the worksheet
          worksheet.insert_chart('E2', chart)
          # output the excel file
          writer.save()

          注:這里需要 XlsxWriter 庫(kù)

          5、節(jié)省磁盤空間

          Pandas在保存數(shù)據(jù)集時(shí),可以對(duì)其進(jìn)行壓縮,其后以壓縮格式進(jìn)行讀取。

          先搞一個(gè) 300MB 的 DataFrame,把它存成 csv。

          df = pd.DataFrame(pd.np.random.randn(50000,300))
          df.to_csv(‘random_data.csv’, index=False)

          壓縮一下試試:

          df.to_csv(‘random_data.gz’, compression=’gzip’, index=False)

          文件就變成了136MB。

          gzip壓縮文件可以直接讀?。?/p>

          df = pd.read_csv(‘random_data.gz’)

          這一份Pandas技巧筆記,暫且說(shuō)到這里。各位同學(xué)都做好筆記了嗎?

          Talk is cheap, show me the code。學(xué)會(huì)了,就用起來(lái)吧

          — 完 —

          量子位 QbitAI · 頭條號(hào)簽約

          關(guān)注我們,第一時(shí)間獲知前沿科技動(dòng)態(tài)


          主站蜘蛛池模板: 无码国产精成人午夜视频一区二区 | 国产激情一区二区三区 | 精品国产一区二区三区久久狼| 一区二区三区影院| 怡红院美国分院一区二区 | 亚洲无线码一区二区三区| 日韩精品福利视频一区二区三区| 亚洲图片一区二区| 亚洲一区二区三区香蕉| 国产精品一区12p| 无码AV一区二区三区无码| 日韩在线视频不卡一区二区三区| 亚洲视频一区在线播放| 骚片AV蜜桃精品一区| 无码日韩精品一区二区免费暖暖| 中文字幕一区二区人妻| 免费萌白酱国产一区二区三区| 日韩精品一区二区三区中文字幕| 日本韩国一区二区三区| 爆乳无码AV一区二区三区 | 精品视频在线观看你懂的一区| 国产一区在线观看免费| 色一乱一伦一区一直爽| 丝袜美腿高跟呻吟高潮一区| 日韩精品一区二区三区在线观看| 国产aⅴ精品一区二区三区久久 | 中文字幕精品一区二区| 亚洲日韩AV无码一区二区三区人| 亚洲色无码专区一区| 国产乱码精品一区三上| 日本精品一区二区三区在线视频一 | 久久久久久人妻一区二区三区| 亚洲中文字幕久久久一区| 免费无码A片一区二三区| 国产三级一区二区三区 | 无码一区18禁3D| 精品人妻一区二区三区四区在线| 精品一区二区三区视频| AV天堂午夜精品一区| 91成人爽a毛片一区二区| 亚洲.国产.欧美一区二区三区|