消灭虫子

python对应拼接两个或多个字符串数组

2022-09-26  本文已影响0人  纷纷不可诉

1.目标

输入a和b,返回c(对应组合的结果)

a=['a', 'b', 'c']
b=['1', '2', '3']
c=['a_1','b_2','c_3']

2.解决

python对于许多这种看上去很简单的事情,其实反而没有直接的基础函数,不像R自带的paste()/paste0()就可以搞定,当然这主要是由于他们对于数组/向量的运算机制不同。

1.for循环

lable=[]
for i in range(len(m)):
    id=m[i]+'_'+n[i]
    lable.append(id)

不过也可以简化这个代码, 通过zip()可以实现

lable=['_'.join(x) for x in list(zip(m,n))] # 一句代码实现上面的循环 zip是对应组合数组用的 join是数组和元组组合用的

2.pandas/numpy里面的实现
如果本身这两列是dataframe里面的,那么在 Pandas 里 DataFrame 中实现合并两列文本的方式就多了,也更简单
常见的两个字符串组合的方式全部可以用:
+ 运算符方法;df.map() 方法;df.apply() 方法;Series.str.cat() 方法];df.agg() 方法等。
举一个简单的例子:

arr=[['a', 'b', 'c'],['1', '2', '3']]
pd=pandas.DataFrame(data,columns=['a','b'])
pd['c']=pd['a']+'_'+pd['c']

其他pd中的方法可以参见:
https://www.delftstack.com/zh/howto/python-pandas/how-to-combine-two-columns-of-text-in-dataframe-in-pandas/

今天又是学习python的一天呀~~

上一篇 下一篇

猜你喜欢

热点阅读