Pandas必备技巧 超、凢脫俗 2022-10-31 00:42 125阅读 0赞 ### 需求如下 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDM1Mjk4MQ_size_16_color_FFFFFF_t_70] 如上图,已将原始数据使用向量化字符串的方法 `series.str.split()` ,以 `_` 拆分为列表,那现在需求**是将红色框框住的部分拼接为字符串**。 ### 思考 ### 如果,我们是在原生 *python* 语法中,需要将 `list` 中的元素拼接为字符串,我们如何实现?有的朋友可能会想到先循环将元素逐个取出,再使用 `+` 进行拼接。这个方法虽然可以实现,但是代码看起来却平平无奇。 那如果对 `str` 比较熟悉的程序猴肯定会想到 `str.join(iter)` 方法,也就是字符串的拼接方法。代码如下: In [1]: li = ["a","b","c"] In [2]: "".join(li) Out[2]: 'abc' 那切换到我们现在的需求,该怎么来实现呢?同样的道理,我们看 *python* 中**向量化字符串函数**是否也有`Series.str.join()`方法。模拟代码如下: # 导入库 import pandas as pd import numpy as np from matplotlib import pyplot as plt # 创建Series s = pd.Series(["amy_A_sss","sya_B_sss"]) # 以_将字符串进行拆分为列表 s_two = s.str.split("_") ![在这里插入图片描述][20210220151538850.png] 使用`Series.str.join()`方法进行拼接 s_two.str.join("") ![在这里插入图片描述][20210220151634707.png] 很显然是可以进行拼接的,但是我们又会发现并不完全符合需求,因为需求只需要取出前两个进行拼接即可。那怎么来实现呢?我们就需要回归到`Series.str`的本质。 for item in s_two.str: print(item) ![在这里插入图片描述][20210220152020505.png] 通过如上代码,发现 `Series.str` 里面的每一个元素,实际上就是列表中每一个字符串所构成的单独的 `Series`。 那现在很显然,我们只需要取出前两个`Series`再进行拼接即可。实现代码如下: s_two.str[:2].str.join("") ![在这里插入图片描述][20210220152509713.png] 这样即可实现啦~ 更多关于 *python* 技巧学习,欢迎关注公众号:极客夜读 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDM1Mjk4MQ_size_16_color_FFFFFF_t_70]: /images/20221024/2f50ddb1b94a4f2c89f6cfa8647411a4.png [20210220151538850.png]: /images/20221024/03f917e0727c4b3086df3d20fff61785.png [20210220151634707.png]: /images/20221024/bdfe3f2a77f94283a9759082d9f257a3.png [20210220152020505.png]: /images/20221024/6f8a1efdb17e4ab5b89180075746b2ad.png [20210220152509713.png]: /images/20221024/f1b52cb8ad74443ca2e107df3701340d.png
还没有评论,来说两句吧...