import pandas as pd
import numpy as np
df = pd.DataFrame([['1-a-3','2-3'],['2-b-d','3-1']], columns=['name','value'])
df 输出:
name value
0 1-a-3 2-3
1 2-b-d 3-1
要求:将name中的第二个字符 和value 列中 最后一个字符进行合并重组为一个新的字符。
name value key
0 1-a-3 2-3 a-3
1 2-b-d 3-1 b-1
这样的效果,
那么 首先 name的分割为:
df['key']=df['name'].str.split('-', expand=True)[1]
name value key1
0 1-a-3 2-3 a
1 2-b-d 3-1 b
df['key2']=df['value'].str.split('-', expand=True)[1]
name value key1 key2
0 1-a-3 2-3 a 3
1 2-b-d 3-1 b 1
那么 整体来对数据做处理:
df['key']=df['name'].str.split('-', expand=True)[1].str.cat(df['value'].str.split('-').apply(lambda x: x[-1]),sep='-')
df:
name value key1 key2 key
0 1-a-3 2-3 a 3 a-3
1 2-b-d 3-1 b 1 b-1