商城首页欢迎来到中国正版软件门户

您的位置:首页 >Pandas:十种数据处理技巧,让你事半功倍

Pandas:十种数据处理技巧,让你事半功倍

  发布于2023-04-30 阅读(0)

扫一扫,手机访问

本文所整理的技巧与以前整理过10个Pandas的常用技巧不同,你可能并不会经常的使用它,但是有时候当你遇到一些非常棘手的问题时,这些技巧可以帮你快速解决一些不常见的问题。

Pandas:十种数据处理技巧,让你事半功倍

1、Categorical类型

默认情况下,具有有限数量选项的列都会被分配object 类型。 但是就内存来说并不是一个有效的选择。 我们可以这些列建立索引,并仅使用对对象的引用而实际值。Pandas 提供了一种称为 Categorical的Dtype来解决这个问题。

例如一个带有图片路径的大型数据集组成。 每行有三列:anchor, positive, and negative.。

如果类别列使用 Categorical 可以显着减少内存使用量。

# raw data
 +----------+------------------------+
 |class |filename|
 +----------+------------------------+
 | Bathroom | Bathroombath_1.jpg|
 | Bathroom | Bathroombath_100.jpg|
 | Bathroom | Bathroombath_1003.jpg |
 | Bathroom | Bathroombath_1004.jpg |
 | Bathroom | Bathroombath_1005.jpg |
 +----------+------------------------+
 
 # target
 +------------------------+------------------------+----------------------------+
 | anchor |positive|negative|
 +------------------------+------------------------+----------------------------+
 | Bathroombath_1.jpg| Bathroombath_100.jpg| Dinningdin_540.jpg|
 | Bathroombath_100.jpg| Bathroombath_1003.jpg | Dinningdin_1593.jpg |
 | Bathroombath_1003.jpg | Bathroombath_1004.jpg | Bedroombed_329.jpg|
 | Bathroombath_1004.jpg | Bathroombath_1005.jpg | Livingroomliving_1030.jpg |
 | Bathroombath_1005.jpg | Bathroombath_1007.jpg | Bedroombed_1240.jpg |
 +------------------------+------------------------+----------------------------+

filename列的值会经常被复制重复。因此,所以通过使用Categorical可以极大的减少内存使用量。

让我们读取目标数据集,看看内存的差异:

triplets.info(memory_usage="deep")
 
 # Column Non-Null Count Dtype
 # --- ------ -------------- -----
 # 0 anchor 525000 non-null category
 # 1 positive 525000 non-null category
 # 2 negative 525000 non-null category
 # dtypes: category(3)
 # memory usage: 4.6 MB
 
 # without categories
 triplets_raw.info(memory_usage="deep")
 
 # Column Non-Null Count Dtype
 # --- ------ -------------- -----
 # 0 anchor 525000 non-null object
 # 1 positive 525000 non-null object
 # 2 negative 525000 non-null object
 # dtypes: object(3)
 # memory usage: 118.1 MB

差异非常大,并且随着重复次数的增加,差异呈非线性增长。

2、行列转换

sql中经常会遇到行列转换的问题,Pandas有时候也需要,让我们看看来自Kaggle比赛的数据集。census_start .csv文件:

Pandas:十种数据处理技巧,让你事半功倍

可以看到,这些按年来保存的,如果有一个列year和pct_bb,并且每一行有相应的值,则会好得多,对吧。

cols = sorted([col for col in original_df.columns 
 if col.startswith("pct_bb")])
 df = original_df[(["cfips"] + cols)]
 df = df.melt(id_vars="cfips",
value_vars=cols,
var_name="year",
value_name="feature").sort_values(by=["cfips", "year"])

看看结果,这样是不是就好很多了:

Pandas:十种数据处理技巧,让你事半功倍

3、apply()很慢

我们上次已经介绍过,最好不要使用这个方法,因为它遍历每行并调用指定的方法。但是要是我们没有别的选择,那还有没有办法提高速度呢?

可以使用swifter或pandarallew这样的包,使过程并行化。

Swifter

import pandas as pd
 import swifter
 
 def target_function(row):
 return row * 10
 
 def traditional_way(data):
 data['out'] = data['in'].apply(target_function)
 
 def swifter_way(data):
 data['out'] = data['in'].swifter.apply(target_function)

Pandarallel

import pandas as pd
 from pandarallel import pandarallel
 
 def target_function(row):
 return row * 10
 
 def traditional_way(data):
 data['out'] = data['in'].apply(target_function)
 
 def pandarallel_way(data):
 pandarallel.initialize()
 data['out'] = data['in'].parallel_apply(target_function)

通过多线程,可以提高计算的速度,当然当然,如果有集群,那么最好使用dask或pyspark

4、空值,int, Int64

标准整型数据类型不支持空值,所以会自动转换为浮点数。所以如果数据要求在整数字段中使用空值,请考虑使用Int64数据类型,因为它会使用pandas.NA来表示空值。

5、Csv, 压缩还是parquet?

尽可能选择parquet。parquet会保留数据类型,在读取数据时就不需要指定dtypes。parquet文件默认已经使用了snappy进行压缩,所以占用的磁盘空间小。下面可以看看几个的对比

|file|size |
 +------------------------+---------+
 | triplets_525k.csv| 38.4 MB |
 | triplets_525k.csv.gzip |4.3 MB |
 | triplets_525k.csv.zip|4.5 MB |
 | triplets_525k.parquet|1.9 MB |
 +------------------------+---------+

读取parquet需要额外的包,比如pyarrow或fastparquet。chatgpt说pyarrow比fastparquet要快,但是我在小数据集上测试时fastparquet比pyarrow要快,但是这里建议使用pyarrow,因为pandas 2.0也是默认的使用这个。

6、value_counts ()

计算相对频率,包括获得绝对值、计数和除以总数是很复杂的,但是使用value_counts,可以更容易地完成这项任务,并且该方法提供了包含或排除空值的选项。

df = pd.DataFrame({"a": [1, 2, None], "b": [4., 5.1, 14.02]})
 df["a"] = df["a"].astype("Int64")
 print(df.info())
 print(df["a"].value_counts(normalize=True, dropna=False),
df["a"].value_counts(normalize=True, dropna=True), sep="nn")

Pandas:十种数据处理技巧,让你事半功倍

这样是不是就简单很多了

7、Modin

注意:Modin现在还在测试阶段。

pandas是单线程的,但Modin可以通过缩放pandas来加快工作流程,它在较大的数据集上工作得特别好,因为在这些数据集上,pandas会变得非常缓慢或内存占用过大导致OOM。

!pip install modin[all]
 
 import modin.pandas as pd
 df = pd.read_csv("my_dataset.csv")

以下是modin官网的架构图,有兴趣的研究把:

Pandas:十种数据处理技巧,让你事半功倍

8、extract()

如果经常遇到复杂的半结构化的数据,并且需要从中分离出单独的列,那么可以使用这个方法:

import pandas as pd
 
 regex = (r'(?P[A-Za-z's]+),'
r'(?P<author>[A-Za-zs']+),'
r'(?P<isbn>[d-]+),'
r'(?P<year>d{4}),'
r'(?P<publisher>.+)')
 addr = pd.Series([
 "The Lost City of Amara,Olivia Garcia,978-1-234567-89-0,2023,HarperCollins",
 "The Alchemist's Daughter,Maxwell Greene,978-0-987654-32-1,2022,Penguin Random House",
 "The Last Voyage of the HMS Endeavour,Jessica Kim,978-5-432109-87-6,2021,Simon & Schuster",
 "The Ghosts of Summer House,Isabella Lee,978-3-456789-12-3,2000,Macmillan Publishers",
 "The Secret of the Blackthorn Manor,Emma Chen,978-9-876543-21-0,2023,Random House Children's Books"
])
 addr.str.extract(regex)</pre><p style="text-align: center;" ><p ><img src="/uploads/20230427/168257617390983.png" alt="Pandas:十种数据处理技巧,让你事半功倍" /></p></p><h4 style="line-height: 1;"  >9、读写剪贴板</h4><p >这个技巧有人一次也用不到,但是有人可能就是需要,比如:在分析中包含PDF文件中的表格时。通常的方法是复制数据,粘贴到Excel中,导出到csv文件中,然后导入Pandas。但是,这里有一个更简单的解决方案:pd.read_clipboard()。我们所需要做的就是复制所需的数据并执行一个方法。</p><p >有读就可以写,所以还可以使用to_clipboard()方法导出到剪贴板。</p><p >但是要记住,这里的剪贴板是你运行python/jupyter主机的剪切板,并不可能跨主机粘贴,一定不要搞混了。</p><h4 style="line-height: 1;"  >10、数组列分成多列</h4><p >假设我们有这样一个数据集,这是一个相当典型的情况:</p><pre class="brush:javascript;toolbar:false;">import pandas as pd
 df = pd.DataFrame({"a": [1, 2, 3],
"b": [4, 5, 6],
"category": [["foo", "bar"], ["foo"], ["qux"]]})
 
 # let's increase the number of rows in a dataframe
 df = pd.concat([df]*10000, ignore_index=True)</pre><p style="text-align: center;" ><p ><img src="/uploads/20230427/168257617378759.png" alt="Pandas:十种数据处理技巧,让你事半功倍" /></p></p><p >我们想将category分成多列显示,例如下面的</p><p style="text-align: center;" ><p ><img src="/uploads/20230427/168257617465287.png" alt="Pandas:十种数据处理技巧,让你事半功倍" /></p></p><p >先看看最慢的apply:</p><pre class="brush:javascript;toolbar:false;">def dummies_series_apply(df):
return df.join(df['category'].apply(pd.Series) 
.stack() 
.str.get_dummies() 
.groupby(level=0) 
.sum()) 
.drop("category", axis=1)
 %timeit dummies_series_apply(df.copy())
 #5.96 s ± 66.6 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)</pre><p >sklearn的MultiLabelBinarizer</p><pre class="brush:javascript;toolbar:false;">from sklearn.preprocessing import MultiLabelBinarizer
 def sklearn_mlb(df):
mlb = MultiLabelBinarizer()
return df.join(pd.DataFrame(mlb.fit_transform(df['category']), columns=mlb.classes_)) 
.drop("category", axis=1)
 %timeit sklearn_mlb(df.copy())
 #35.1 ms ± 1.31 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)</pre><p >是不是快了很多,我们还可以使用一般的向量化操作对其求和:</p><pre class="brush:plain;toolbar:false;">def dummies_vectorized(df):
return pd.get_dummies(df.explode("category"), prefix="cat") 
.groupby(["a", "b"]) 
.sum() 
.reset_index()
 %timeit dummies_vectorized(df.copy())
 #29.3 ms ± 1.22 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)</pre><p style="text-align: center;" ><p ><img src="/uploads/20230427/168257617419157.png" alt="Pandas:十种数据处理技巧,让你事半功倍" /></p></p><p >使用第一个方法(在StackOverflow上的回答中非常常见)会给出一个非常慢的结果。而其他两个优化的方法的时间是非常快速的。</p><h4 style="line-height: 1;"  >总结</h4><p >我希望每个人都能从这些技巧中学到一些新的东西。重要的是要记住尽可能使用向量化操作而不是apply()。此外,除了csv之外,还有其他有趣的存储数据集的方法。不要忘记使用分类数据类型,它可以节省大量内存。感谢阅读!</p>         </div>
		<div class="laiyuan">
		  本文转载于:<a href="https://www.51cto.com/article/750130.html" target="_blank" rel="nofollow">https://www.51cto.com/article/750130.html</a> 如有侵犯,请联系zhengruancom@outlook.com删除。<br/>免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。 
		</div>
        <div class="zrSypBox">
                            <p>上一篇:<a href="https://www.zhengruan.com/news/16516" title="如何使用Java实现基于资金流向的交易策略?" class="aRed">如何使用Java实现基于资金流向的交易策略?</a></p>
                        <p class="right">下一篇:<a href="https://www.zhengruan.com/news/16518" title="如何在iPhone中停止自动更新应用程序?" class="aRed">如何在iPhone中停止自动更新应用程序?</a></p>
                      <div class="clear"></div>
        </div>
        <div class="zrDtxwBox">
          <div class="zrByddTitle">
           <span><h2>产品推荐</h2></span>
         </div>
          <ul class="zrTxdmList3">
                              <li class="one">
                  <div class="zrTxdmCont5">
                    <div class="zrTxdmImg4 dianji">
                      <a href="https://www.zhengruan.com/product/69" class="img"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20200428/cd14258f0172a172f8a80798c38c1577.jpg" alt="DAEMON Tools Lite 10"></a>
                      <span class="xianshi">
                                                  <p>售后无忧</p>
                        <em><a href="https://www.zhengruan.com/product/69" title="立即购买>">立即购买></a></em>
                      </span>
                    </div>
                    <div class="zrTxdmIn4">
                      <dl>
                       <dt><a href="https://www.zhengruan.com/product/69" title="DAEMON Tools Lite 10【序列号终身授权 + 中文版 + Win】" class="aBlack">DAEMON Tools Lite 10【序列号终身授权 + 中文版 + Win】</a></dt>
                       <dd>
                                                       <span>¥150.00</span>
                                                    <p>office旗舰店</p>
                       </dd>
                      </dl>
                    </div>
                  </div>
                </li>
                              <li >
                  <div class="zrTxdmCont5">
                    <div class="zrTxdmImg4 dianji">
                      <a href="https://www.zhengruan.com/product/67" class="img"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20200428/fbf473d4d30833324962e441c0f18265.jpg" alt="DAEMON Tools Ultra 5"></a>
                      <span class="xianshi">
                                                  <p>售后无忧</p>
                        <em><a href="https://www.zhengruan.com/product/67" title="立即购买>">立即购买></a></em>
                      </span>
                    </div>
                    <div class="zrTxdmIn4">
                      <dl>
                       <dt><a href="https://www.zhengruan.com/product/67" title="DAEMON Tools Ultra 5【序列号终身授权 + 中文版 + Win】" class="aBlack">DAEMON Tools Ultra 5【序列号终身授权 + 中文版 + Win】</a></dt>
                       <dd>
                                                       <span>¥198.00</span>
                                                    <p>office旗舰店</p>
                       </dd>
                      </dl>
                    </div>
                  </div>
                </li>
                              <li >
                  <div class="zrTxdmCont5">
                    <div class="zrTxdmImg4 dianji">
                      <a href="https://www.zhengruan.com/product/68" class="img"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20200428/1ae250399abf4ff584d86d52c79b5bb6.jpg" alt="DAEMON Tools Pro 8"></a>
                      <span class="xianshi">
                                                  <p>售后无忧</p>
                        <em><a href="https://www.zhengruan.com/product/68" title="立即购买>">立即购买></a></em>
                      </span>
                    </div>
                    <div class="zrTxdmIn4">
                      <dl>
                       <dt><a href="https://www.zhengruan.com/product/68" title="DAEMON Tools Pro 8【序列号终身授权 + 中文版 + Win】" class="aBlack">DAEMON Tools Pro 8【序列号终身授权 + 中文版 + Win】</a></dt>
                       <dd>
                                                       <span>¥189.00</span>
                                                    <p>office旗舰店</p>
                       </dd>
                      </dl>
                    </div>
                  </div>
                </li>
                              <li >
                  <div class="zrTxdmCont5">
                    <div class="zrTxdmImg4 dianji">
                      <a href="https://www.zhengruan.com/product/29" class="img"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20200428/77d3c04866e1b842d9b6ff0e9368bdf8.jpg" alt="CorelDRAW X8 简体中文"></a>
                      <span class="xianshi">
                                                  <p>售后无忧</p>
                        <em><a href="https://www.zhengruan.com/product/29" title="立即购买>">立即购买></a></em>
                      </span>
                    </div>
                    <div class="zrTxdmIn4">
                      <dl>
                       <dt><a href="https://www.zhengruan.com/product/29" title="CorelDRAW X8 简体中文【标准版 + Win】" class="aBlack">CorelDRAW X8 简体中文【标准版 + Win】</a></dt>
                       <dd>
                                                       <span>¥1788.00</span>
                                                    <p>office旗舰店</p>
                       </dd>
                      </dl>
                    </div>
                  </div>
                </li>
                          <div class="clear"></div>
          </ul>
        </div>
      </div>
      <ul class="zrZbrjList" style="padding-top:10px;">
                         <li>
                 <a href="https://www.zhengruan.com/news/604330" class="img1" title="讯飞输入法怎么用?讯飞输入法使用技巧教程">
                     <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20260324/177432007854172.png" alt="讯飞输入法怎么用?讯飞输入法使用技巧教程">
                   <span>正版软件</span>
                 </a>
                 <dl>
                   <dt><a href="https://www.zhengruan.com/news/604330" title="讯飞输入法怎么用?讯飞输入法使用技巧教程" class="aBlack">讯飞输入法怎么用?讯飞输入法使用技巧教程</a></dt>
                   <dd class="cont1">讯飞输入法的好多功能都不知道怎么用?只会切换9键、26键、手写等功能?那其实你错过了很多使用小技巧,只要你学会这些技巧,不止可以带你玩转讯飞输入法,还能有效提高你的打字速度、聊天话术、DIY漂亮话、自制表情包、发颜表情等,轻松体验更多有趣有意思的小玩法,让输入变得既高效又有趣!</dd>
                   <dd class="cont2">
                     <!--<span class="cont1"><img src="zrimages/example/img10.png"/>山外的鸭子哥</span>-->
                     <span class="cont2"><b></b>18小时前 10:41</span>
                                              <span class="cont4"><b></b>0</span>
                   </dd>
                 </dl>
               </li>
                         <li>
                 <a href="https://www.zhengruan.com/news/602717" class="img1" title="小青账如何隐藏默认账本?小青账隐藏默认账本教程">
                     <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20260322/177415590332670.jpg" alt="小青账如何隐藏默认账本?小青账隐藏默认账本教程">
                   <span>正版软件</span>
                 </a>
                 <dl>
                   <dt><a href="https://www.zhengruan.com/news/602717" title="小青账如何隐藏默认账本?小青账隐藏默认账本教程" class="aBlack">小青账如何隐藏默认账本?小青账隐藏默认账本教程</a></dt>
                   <dd class="cont1">小青账如何隐藏默认账本?小青账是一款非常实用且强大的记账软件,为广大用户提供了方便的记账功能。不少用户对如何隐藏默认账本感到困惑,下面小编将介绍小青账隐藏默认账本的操作方法。还不知道的小伙伴快来看看吧!</dd>
                   <dd class="cont2">
                     <!--<span class="cont1"><img src="zrimages/example/img10.png"/>山外的鸭子哥</span>-->
                     <span class="cont2"><b></b>前天 03-22 13:05</span>
                                              <span class="cont4"><b></b>0</span>
                   </dd>
                 </dl>
               </li>
                         <li>
                 <a href="https://www.zhengruan.com/news/602702" class="img1" title="如何使用讯飞星火生成ppt?利用讯飞星火AI生成高质量ppt教程">
                     <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20260322/177415511294914.jpg" alt="如何使用讯飞星火生成ppt?利用讯飞星火AI生成高质量ppt教程">
                   <span>正版软件</span>
                 </a>
                 <dl>
                   <dt><a href="https://www.zhengruan.com/news/602702" title="如何使用讯飞星火生成ppt?利用讯飞星火AI生成高质量ppt教程" class="aBlack">如何使用讯飞星火生成ppt?利用讯飞星火AI生成高质量ppt教程</a></dt>
                   <dd class="cont1">讯飞星火怎么生成高质量ppt?你是否曾经在深夜里为第二天的工作汇报而焦头烂额,翻遍互联网寻找灵感和模板,又或者因为繁琐的排版和设计而感到力不从心?现在,有了讯飞星火AI生成PPT,你的所有烦恼都将一扫而光!</dd>
                   <dd class="cont2">
                     <!--<span class="cont1"><img src="zrimages/example/img10.png"/>山外的鸭子哥</span>-->
                     <span class="cont2"><b></b>前天 03-22 12:52</span>
                                              <span class="cont4"><b></b>0</span>
                   </dd>
                 </dl>
               </li>
                         <li>
                 <a href="https://www.zhengruan.com/news/602685" class="img1" title="搜狐视频怎么投屏到电视播放?搜狐视频app电视投屏方法教程">
                     <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20260322/177415429040351.jpg" alt="搜狐视频怎么投屏到电视播放?搜狐视频app电视投屏方法教程">
                   <span>正版软件</span>
                 </a>
                 <dl>
                   <dt><a href="https://www.zhengruan.com/news/602685" title="搜狐视频怎么投屏到电视播放?搜狐视频app电视投屏方法教程" class="aBlack">搜狐视频怎么投屏到电视播放?搜狐视频app电视投屏方法教程</a></dt>
                   <dd class="cont1">搜狐视频怎么投屏到电视播放?有时候我们在看电视的时候会觉得怕屏幕不够大,看的不大清楚,这时候就会想如果有个大屏幕就好了,今天小编教你们如何用搜狐视频投屏到电视上,彻底的解放双手。搜狐视频app电视投屏教程1、首先打开搜狐视频app,搜索想看的视频或影视剧2、进入详情页后点击有TV字样的图标3、然后搜索附近的设备连接我们的电视4、当电视上出现了手机正在播放的</dd>
                   <dd class="cont2">
                     <!--<span class="cont1"><img src="zrimages/example/img10.png"/>山外的鸭子哥</span>-->
                     <span class="cont2"><b></b>前天 03-22 12:38</span>
                                              <span class="cont4"><b></b>0</span>
                   </dd>
                 </dl>
               </li>
                         <li>
                 <a href="https://www.zhengruan.com/news/602581" class="img1" title="豆瓣怎么设置主页不可见?豆瓣设置隐私主页教程">
                     <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://zhengruan.com/uploads/20260322/177414783984372.png" alt="豆瓣怎么设置主页不可见?豆瓣设置隐私主页教程">
                   <span>正版软件</span>
                 </a>
                 <dl>
                   <dt><a href="https://www.zhengruan.com/news/602581" title="豆瓣怎么设置主页不可见?豆瓣设置隐私主页教程" class="aBlack">豆瓣怎么设置主页不可见?豆瓣设置隐私主页教程</a></dt>
                   <dd class="cont1">豆瓣怎么设置主页不可见?大家在使用豆瓣的时候,经常会在主页发布自己的心情状态、吐槽等等内容,然后其他用户进我们的主页的时候就能很轻松的看到我们发过的内容,那么我们能不能设置主页的隐私呢?要怎么设置呢?下面小编就为大家介绍一下豆瓣个人主页设置隐私的办法。</dd>
                   <dd class="cont2">
                     <!--<span class="cont1"><img src="zrimages/example/img10.png"/>山外的鸭子哥</span>-->
                     <span class="cont2"><b></b>前天 03-22 10:50</span>
                                              <span class="cont4"><b></b>0</span>
                   </dd>
                 </dl>
               </li>
                </ul>
    </div>
    <!--左边 end-->
    <!--右边-->
    <div class="zrZuoRight">
<!--      <div class="zrBanner"><a href="#"><img src="zrimages/example/img11.png"/></a></div>-->
      <div class="zrByddBox">
        <div class="zrByddTitle"><span><h2>最新发布</h2></span></div>
        <ul class="zrByddList">
                          <li>
                <a href="https://www.zhengruan.com/news/1561" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/upload/news/20191220/1576825692n90594/2019-12-20-15-08-12-5dfc735c5581a-1.jpg" alt="微软公布全新开源编程语言Bosque:正则化 告别for循环">
                  <span>1</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/1561" title="微软公布全新开源编程语言Bosque:正则化 告别for循环" class="aBlack">微软公布全新开源编程语言Bosque:正则化 告别for循环</a></dt>
                 <dd><b></b>2287天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/1562" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/upload/news/20191220/1576825776n3925/2019-12-20-15-09-36-5dfc73b032cee-1.jpg" alt="微软推出最新程序语言Bosque 以Functors取代Loop循环">
                  <span>2</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/1562" title="微软推出最新程序语言Bosque 以Functors取代Loop循环" class="aBlack">微软推出最新程序语言Bosque 以Functors取代Loop循环</a></dt>
                 <dd><b></b>2287天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/467167" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20250908/175730816420885.jpg" alt="C语言中\n是什么意思?换行转义字符详解">
                  <span>3</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/467167" title="C语言中\n是什么意思?换行转义字符详解" class="aBlack">C语言中\n是什么意思?换行转义字符详解</a></dt>
                 <dd><b></b>198天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/63159" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="" alt="探析Spring Boot框架的优点和特色">
                  <span>4</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/63159" title="探析Spring Boot框架的优点和特色" class="aBlack">探析Spring Boot框架的优点和特色</a></dt>
                 <dd><b></b>514天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/85739" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="" alt="深入比较PyCharm社区版和专业版的功能">
                  <span>5</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/85739" title="深入比较PyCharm社区版和专业版的功能" class="aBlack">深入比较PyCharm社区版和专业版的功能</a></dt>
                 <dd><b></b>452天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/89680" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="" alt="专家观点:谷歌是否会继续支持Golang的探讨">
                  <span>6</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/89680" title="专家观点:谷歌是否会继续支持Golang的探讨" class="aBlack">专家观点:谷歌是否会继续支持Golang的探讨</a></dt>
                 <dd><b></b>427天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/16470" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20230427/168257472829656.jpg" alt="Python实战教程:批量转换多种音乐格式">
                  <span>7</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/16470" title="Python实战教程:批量转换多种音乐格式" class="aBlack">Python实战教程:批量转换多种音乐格式</a></dt>
                 <dd><b></b>1059天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/41129" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="" alt="如何在在线答题中实现试卷的自动批改和自动评分">
                  <span>8</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/41129" title="如何在在线答题中实现试卷的自动批改和自动评分" class="aBlack">如何在在线答题中实现试卷的自动批改和自动评分</a></dt>
                 <dd><b></b>887天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                          <li>
                <a href="https://www.zhengruan.com/news/87821" class="img">
                    <img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20240301/170927298835686.jpg" alt="解决Python安装失败的问题">
                  <span>9</span>
                </a>
                <dl>
                 <dt><a href="https://www.zhengruan.com/news/87821" title="解决Python安装失败的问题" class="aBlack">解决Python安装失败的问题</a></dt>
                 <dd><b></b>438天前</dd>
                </dl>
                <div class="clear"></div>
              </li>
                    </ul>
      </div>
      <div class="zrRmgzBox" style="margin-top:20px;">
         <div class="zrByddTitle">
           <span><h2>相关推荐</h2></span>
         </div>
         <ul class="zrXwdtList">
                             <li><a href="https://www.zhengruan.com/news/604330" title="讯飞输入法怎么用?讯飞输入法使用技巧教程" class="aBlack">讯飞输入法怎么用?讯飞输入法使用技巧教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/602717" title="小青账如何隐藏默认账本?小青账隐藏默认账本教程" class="aBlack">小青账如何隐藏默认账本?小青账隐藏默认账本教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/602702" title="如何使用讯飞星火生成ppt?利用讯飞星火AI生成高质量ppt教程" class="aBlack">如何使用讯飞星火生成ppt?利用讯飞星火AI生成高质量ppt教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/602685" title="搜狐视频怎么投屏到电视播放?搜狐视频app电视投屏方法教程" class="aBlack">搜狐视频怎么投屏到电视播放?搜狐视频app电视投屏方法教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/602581" title="豆瓣怎么设置主页不可见?豆瓣设置隐私主页教程" class="aBlack">豆瓣怎么设置主页不可见?豆瓣设置隐私主页教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/601716" title="夸克浏览器怎么设置电脑模式?夸克浏览器设置成电脑模式教程" class="aBlack">夸克浏览器怎么设置电脑模式?夸克浏览器设置成电脑模式教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/601701" title="夸克浏览器怎么开启成人模式?夸克浏览器设置成人模式的方法" class="aBlack">夸克浏览器怎么开启成人模式?夸克浏览器设置成人模式的方法</a></li>
                             <li><a href="https://www.zhengruan.com/news/601689" title="东方甄选如何进行企业团购?东方甄选企业团购教程" class="aBlack">东方甄选如何进行企业团购?东方甄选企业团购教程</a></li>
                             <li><a href="https://www.zhengruan.com/news/601123" title="饿了么怎么让别人代付?饿了么让别人代付的步骤教程" class="aBlack">饿了么怎么让别人代付?饿了么让别人代付的步骤教程</a></li>
                      </ul>
      </div>
      <div class="zrRmgzBox" style="margin-top:30px;">
         <div class="zrByddTitle">
           <span><h2>热门关注</h2></span>
         </div>
         <ul class="zrRmgzList">
                                <li>
                     <span><a href="https://www.zhengruan.com/product/19" title="Xshell 6 简体中文"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20200428/3c06ff5d8d3a8b234a536d602bcc0477.jpg" alt="Xshell 6 简体中文"></a></span>
                     <dl>
                       <dt><a href="https://www.zhengruan.com/product/19" title="Xshell 6 简体中文" class="aBlack">Xshell 6 简体中文</a></dt>
                       <dd class="unstar unstar5"></dd>
                       <dd class="cont1">¥899.00-¥1149.00</dd>
                     </dl>
                     <div class="clear"></div>
                   </li>
                                <li>
                     <span><a href="https://www.zhengruan.com/product/48" title="DaVinci Resolve Studio 16 简体中文"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20200428/60b5be77e7fc0ffb073d36675dc61585.jpg" alt="DaVinci Resolve Studio 16 简体中文"></a></span>
                     <dl>
                       <dt><a href="https://www.zhengruan.com/product/48" title="DaVinci Resolve Studio 16 简体中文" class="aBlack">DaVinci Resolve Studio 16 简体中文</a></dt>
                       <dd class="unstar unstar5"></dd>
                       <dd class="cont1">¥2550.00-¥2550.00</dd>
                     </dl>
                     <div class="clear"></div>
                   </li>
                                <li>
                     <span><a href="https://www.zhengruan.com/product/47" title="Camtasia 2019 简体中文"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20200428/537cf14c8ab78e3bca0cfe8e91c8b683.jpg" alt="Camtasia 2019 简体中文"></a></span>
                     <dl>
                       <dt><a href="https://www.zhengruan.com/product/47" title="Camtasia 2019 简体中文" class="aBlack">Camtasia 2019 简体中文</a></dt>
                       <dd class="unstar unstar5"></dd>
                       <dd class="cont1">¥689.00-¥689.00</dd>
                     </dl>
                     <div class="clear"></div>
                   </li>
                                <li>
                     <span><a href="https://www.zhengruan.com/product/35" title="Luminar 3 简体中文"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20200428/d253cca5f121bda501d04debdf3a4fa2.jpg" alt="Luminar 3 简体中文"></a></span>
                     <dl>
                       <dt><a href="https://www.zhengruan.com/product/35" title="Luminar 3 简体中文" class="aBlack">Luminar 3 简体中文</a></dt>
                       <dd class="unstar unstar5"></dd>
                       <dd class="cont1">¥288.00-¥288.00</dd>
                     </dl>
                     <div class="clear"></div>
                   </li>
                                <li>
                     <span><a href="https://www.zhengruan.com/product/49" title="Apowersoft 录屏王 简体中文"><img onerror="this.src='https://www.zhengruan.com/statics/www/zrimages/404_bg.png'" src="https://www.zhengruan.com/uploads/20200428/c61fdff8f15649063e6b2617c8aa96fb.jpg" alt="Apowersoft 录屏王 简体中文"></a></span>
                     <dl>
                       <dt><a href="https://www.zhengruan.com/product/49" title="Apowersoft 录屏王 简体中文" class="aBlack">Apowersoft 录屏王 简体中文</a></dt>
                       <dd class="unstar unstar5"></dd>
                       <dd class="cont1">¥129.00-¥339.00</dd>
                     </dl>
                     <div class="clear"></div>
                   </li>
                      </ul>
      </div>
    </div>
    <!--右边 end-->
    <div class="clear"></div>
  </div> 
  <!--主体 end--> 
  <!--底部-->
  <!--底部-->

<div class="zrFoot">

    <div class="zrFootIn">

        <div class="zrFootMsg">网站备案号:

            <a href="javascript:void(0)" target="" style="text-decoration: none;">

                <font color="#9b9db0">湘ICP备19013367号-1 联系邮箱:zhengruancom@outlook.com<br>

                    Copyright ©2018-2020</font>

            </a>

        </div>

    </div>

</div>

<!--底部 end-->


<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?2f243b178fc8c70f194fc14781f06522";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>
  <!--底部 end-->
<script>
    function countView(){
        $.ajax({
            type: "post",
            url:  "/countView?&time="+new Date().getTime(),
            data:{'type':'news','id':"16517"},
            async:false,
            dataType: "json",
            success: function(result){
                console.log(result)
            },
            error:function(){

            }
        });
    }

    function code_highlight() {
        SyntaxHighlighter.all()
    }
    
  
  
    $(function(){
        code_highlight();
        countView();
        $("#qrcode").qrcode({width:150,height:150,text:"https://m.zhengruan.com/news/16517"})
    })
</script>
</body>
</html>