Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国语自产免费精品视频一区二区,最近中文字幕免费在线看,中文字幕日本久久2019

          整合營銷服務商

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

          免費咨詢熱線:

          不容錯過的Pandas小技巧:萬能轉(zhuǎn)格式、輕松合并、壓縮數(shù)據(jù)

          者:Roman Orac
          魚羊 編譯整理
          量子位 報道 | 公眾號 QbitAI

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

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

          了解了這些技巧,能讓你在學習、使用 Pandas 的時候更加高效。

          話不多說,一起學習一下~

          Pandas實用技巧

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

          Pandas 在這一點上其實十分友好,只需添加一行代碼。

          DataFrame 轉(zhuǎn) HTML

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

          比如,我們先設定這樣一個 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

          如果你還沒用過 LaTeX 寫論文,強烈建議嘗試一下。

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

          df.to_latex()

          DataFrame 轉(zhuǎn) Markdown

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

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

          Pandas 同樣為你考慮到了這一點:

          print(df.to_markdown())

          注:這里還需要 tabulate 庫

          DataFrame 轉(zhuǎn) Excel

          說到這里,給同學們提一個小問題:導師/老板/客戶要你提供 Excel 格式的數(shù)據(jù),你該怎么做?

          當然是——

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

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

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

          DataFrame 轉(zhuǎn)字符串

          轉(zhuǎn)成字符串,當然也沒問題:

          df.to_string()

          5個鮮為人知的Pandas技巧

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

          1、data_range

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

          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ù)就會分別返回按天、月、年遞增的日期。

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

          當你有一個名為left的DataFrame:

          和名為right的DataFrame:

          想通過關鍵字“key”把它們整合到一起:

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

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

          3、最近合并(Nearest merge)

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

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

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

          舉個例子,你有一個存儲報價信息的DataFrame。

          還有一個存儲交易信息的DataFrame。

          現(xiàn)在,你需要把兩個DataFrame中對應的信息合并起來。

          最新報價和交易之間可能有10毫秒的延遲,或者沒有報價,在進行合并時,就可以用上 merge_asof。

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

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

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

          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 庫

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

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

          先搞一個 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壓縮文件可以直接讀取:

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

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

          Talk is cheap, show me the code。學會了,就用起來吧

          — 完 —

          量子位 QbitAI · 頭條號簽約

          關注我們,第一時間獲知前沿科技動態(tài)

          .本文為公測版,一旦發(fā)現(xiàn)有任何錯誤內(nèi)容,會立即進行修復,請持續(xù)關注本站。

          2.本文在正式版之前會不斷的邀請各路黑客大手進行評價測試,歡迎提出異議。

          本文僅針對網(wǎng)站部分,本文會對typecho,wordpress進行測試

          如果你root端口為22,并且密碼是123456,就沒必要往下看了。

          網(wǎng)站環(huán)境為linux tengine/nginx mariaDB,同理,apache也有相關設置,百度實驗下即可。

          **本文會闡述以下部分

          1.基礎權限控制

          2.執(zhí)行目錄限制

          3.PHP的限制

          4.webshell寫入與執(zhí)行

          5.權限細分,必須寫入的目錄**

          1.基礎權限控制

          什么叫基礎權限?在LNMP架構下,nginx+php-fpm架構需要什么權限?

          這里我們先來看一下默認權限

          默認我們的nginx運行用戶是nginx,而php-fpm的默認用戶是apache,默認用戶安全嗎?

          看一下webshell

          uid=48(apache) gid=48(apache) groups=48(apache)

          很明顯,我們的默認用戶是apache

          我們使用shell新建一個目錄,很明顯,我們是無法建立文件夾的

          mkdir: cannot create directory `1': Permission denied

          在網(wǎng)上很多教程會告訴我們,吧nginx和phpfpm改成同樣的用戶,我們看看會發(fā)生什么。

          [root@gov 1]# sudo -u nginx mkdir 1

          [root@gov 1]# ll

          total 4

          drwxr-xr-x 2 nginx nginx 4096 Aug 19 18:08 1

          沒錯,這是一項愚蠢的決定!

          所以默認權限是安全的嗎?并不是,你忘了上傳目錄,我們看下上傳目錄的權限

          drwxrwx--- 3 nginx apache 4096 Aug 14 17:09 uploads

          沒錯,上傳目錄的存在就是放大權限,如果php沒有寫入權限,那么他就無法上傳圖片。

          假設,我們手里有一個0day,現(xiàn)在我要用它來getshell

          我會選擇uploads目錄

          -rw-r--r-- 1 apache apache 0 Aug 19 18:11 1.php

          完美寫入,接著你的站就會被玩壞了,寫入shell后我們可以插件數(shù)據(jù)庫鏈接密碼,進網(wǎng)站后臺,脫褲,掛黑鏈等等等等

          網(wǎng)站里有幾個目錄是默認可以寫入的?在你的網(wǎng)站目錄下執(zhí)行l(wèi)s -l

          通常plugins themes uploads 這三個目錄都是可以寫入的。

          你還有其他目錄可以寫入?趕緊修改權限吧!

          加入我們的網(wǎng)站在/var/www/html/root

          那么下面的命令是極好的,對于必須要有上傳權限的uploads目錄,我們下面再說

          chown -R nginx.apache html

          find /var/www/html/root -type d -exec chmod 750 {} \;

          find /var/www/html/root -not -type d -exec chmod 640 {} \;

          chmod 770 /var/www/html/root/uploads -R

          如果你有某些插件也需要寫入權限,給他權限,并認真看下面的內(nèi)容。

          2.執(zhí)行目錄限制

          我們的apache權限有多大呢?相同的網(wǎng)站擁有相同的權限。

          默認情況下,我們的apache權限能瀏覽大部分目錄。最要命的問題在于,他可以跨站執(zhí)行,從你的網(wǎng)站一直接執(zhí)行到網(wǎng)站二。

          我們需要給他一個限制,每個虛擬主機一個單獨的限制,沒錯就是open_basedir。

          這里我們需要特別的技巧,每個虛擬機都要限制

          這樣虛擬主機將只允許在網(wǎng)站目錄和tmp目錄執(zhí)行,而不能穿越到其他目錄

          在烏云有一篇討論繞過open_basedir的文章,所以open_basedir只能讓你更安全而不是徹底安全,所以你還需要往下看。

          server {

          location ~ .*\.php(\/.*)*$ {

          #include pathinfo.conf;

          fastcgi_pass 127.0.0.1:9000;

          fastcgi_index index.php;

          fastcgi_param PHP_VALUE "open_basedir=$document_root:/tmp/";

          3.PHP的限制

          我們想一個另類解決辦法,如何限制webshell的執(zhí)行?

          在php.ini里,我們可以選擇關閉某些不安全的函數(shù)

          但是由于php這玩意分之多又復雜,這里只能整理出一部分不安全的函數(shù)。

          直接添加到php.ini最后面即可

          disable_functions=exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_get_option,socket_getpeername,socket_getsockname,socket_last_error,socket_listen,socket_read,socket_recv,socket_recvfrom,socket_select,socket_send,socket_sendto,socket_set_block,socket_set_nonblock,socket_set_option,socket_shutdown,socket_strerror,socket_write,stream_socket_server,disk_total_space,disk_free_space,diskfreespace,getrusage,get_current_user,getmyuid,getmypid,dl,leak,listen,chgrp,link,symlink,dlopen,proc_nice,proc_get_stats,proc_terminate,shell_exec,sh2_exec,posix_getpwuid,posix_getgrgid,posix_kill,ini_restore,mkfifo,dbmopen,dbase_open,filepro,filepro_rowcount,posix_mkfifo,putenv,sleep,chmod,chown,chroot,ini_set,phpinfo,proc_get_status,error_log,syslog,readlink,putenv

          在看webshell,我們會發(fā)現(xiàn)里面空空如也了,并不能執(zhí)行命令了。

          4.webshell寫入與執(zhí)行

          現(xiàn)在我們的網(wǎng)站已經(jīng)很安全了,他能否更加安全?

          現(xiàn)在,我們就要說說我們必須要有執(zhí)行權限的upload目錄了,nginx同樣提供了解決方案

          location ~ /(usr/uploads)/.*\.(php|php5)?$

          {

          deny all;

          }

          這個時候我們打開uploads中的php文件會提示403

          403 Forbidden

          You don't have permission to access the URL on this server. Sorry for the inconvenience.

          我們的效果得到驗證,即使寫入也不能執(zhí)行。

          5.必須要寫入權限但是又包含php文件的目錄。

          例如我的用的郵件通知插件目錄內(nèi)有cache和和log目錄,是必須有寫入權限的

          這里千萬不要犯懶,直接給CommentToMail寫入

          location ~ /(usr/uploads|usr/plugins/CommentToMail/cache|usr/plugins/CommentToMail/log)/.*\.(php|php5)?$

          {

          deny all;

          }

          既可以實現(xiàn)寫入文件,又可以讓php無法執(zhí)行。

          總結,上面的所有配置:

          用戶與PHP運行權限分離

          nginx:apache

          執(zhí)行目錄限制

          open_basedir

          PHP函數(shù)限制

          php.ini

          特殊目錄關閉PHP解析

          deny all

          權限細分

          xx|xx|xx

          歡迎拍磚,同時 起司靶場v2 上線,完全脫離安全鎖之類的軟件,歡迎測試。

          起司靶場v2

          DF轉(zhuǎn)HTML在網(wǎng)絡應用中越來越受到重視,PDF作為一種電子文件格式廣泛應用于各種場景,例如在線教育、電子商務等。但是PDF作為一種專有格式,在網(wǎng)絡應用中存在一定的限制,比如不便于搜索引擎索引的問題。因此,將PDF轉(zhuǎn)換為HTML格式就顯得尤為重要。HTML作為一種開放標準,在瀏覽器中的兼容性強,結構清晰,方便搜索引擎抓取,能很好地解決PDF在網(wǎng)絡應用中的一些問題。那你們知道PDF怎么轉(zhuǎn)HTML嗎?下面就為大家分享幾種不錯的方法。

          以下是可以將PDF轉(zhuǎn)HTML的方法:

          一、使用全能PDF轉(zhuǎn)換助手將PDF轉(zhuǎn)HTML

          這是一款功能豐富的PDF轉(zhuǎn)換工具,支持將PDF文件轉(zhuǎn)換為多種格式,包括HTML。它具有直觀的操作界面和簡單易用的操作流程,即使對于初學者也很友好。

          【轉(zhuǎn)換步驟】

          步驟一:打開軟件后,選擇“PDF轉(zhuǎn)HTML”功能。

          步驟二:添加PDF文件,接著調(diào)整“頁碼選擇”,然后點擊“開始轉(zhuǎn)換”即可。

          二、使用HODO將PDF轉(zhuǎn)HTML

          這是一個受歡迎的PDF轉(zhuǎn)HTML平臺,它專注于提供出色的轉(zhuǎn)換質(zhì)量和準確性。它的轉(zhuǎn)換引擎使用先進的算法,可以保留原始PDF文件的布局和格式,并將其轉(zhuǎn)換為高質(zhì)量的HTML文件。

          【轉(zhuǎn)換步驟】

          步驟一:使用瀏覽器打開平臺的網(wǎng)站后,選擇“PDFto HTML”功能。

          步驟二:添加PDF文件,接著平臺就會自動識別并進行轉(zhuǎn)換。

          三、使用ZAMZAR將PDF轉(zhuǎn)HTML

          這是另一個在線文件轉(zhuǎn)換平臺,提供多種文件格式之間的轉(zhuǎn)換服務,包括PDF到HTML的轉(zhuǎn)換。這個平臺非常方便使用,我們不需要安裝任何軟件。

          【轉(zhuǎn)換步驟】

          步驟一:打開平臺后,通過“ChooseFiles”上傳PDF文件。

          步驟二:在“WebFormats”中選擇“HTML”格式,接著點擊“ConvertNow”就能完成轉(zhuǎn)換。

          看完這篇文章,大家都學會PDF怎么轉(zhuǎn)HTML了嗎?以上三種方法都可以很好地實現(xiàn)PDF到HTML的轉(zhuǎn)換,幫助我們利用PDF內(nèi)容在網(wǎng)頁中發(fā)揮更廣泛的價值。具體選擇哪種方法,需要大家結合自身實際轉(zhuǎn)換需求來定。


          主站蜘蛛池模板: 亚洲国产精品无码第一区二区三区 | 精品无码一区二区三区爱欲九九| 中文字幕一区日韩在线视频| bt7086福利一区国产| 精品理论片一区二区三区| 国产一区二区不卡老阿姨| 在线视频一区二区| 久久一区二区明星换脸| 东京热无码一区二区三区av| 日韩动漫av在线播放一区| 伊人久久精品一区二区三区| 午夜天堂一区人妻| 消息称老熟妇乱视频一区二区| 东京热人妻无码一区二区av| 国产午夜三级一区二区三| 高清国产精品人妻一区二区| 国产在线一区二区在线视频| 丝袜人妻一区二区三区| 亚洲韩国精品无码一区二区三区 | 清纯唯美经典一区二区| 无码人妻一区二区三区精品视频| 99久久精品费精品国产一区二区 | 无码一区二区三区| 久久久精品一区二区三区| 中文字幕亚洲乱码熟女一区二区| 精品免费久久久久国产一区| 成人影片一区免费观看| 丝袜无码一区二区三区| 日韩人妻不卡一区二区三区 | 中文字幕日本精品一区二区三区| 一区二区国产在线播放| 中文字幕精品一区二区三区视频| 亚洲国产精品一区第二页| 日本激情一区二区三区| 国产欧美色一区二区三区| 加勒比精品久久一区二区三区| 一区二区视频免费观看| 国产成人精品无码一区二区 | 国产精品区一区二区三| 日韩熟女精品一区二区三区 | 精品国产一区二区三区香蕉|