熊猫-使用搜索按每个单元格中的字符串值进行修改

时间:2019-11-03 10:08:06

标签: string pandas

我的pandas数据框包含一列a,其内容为'<152/abcx>' ,'<42/da>', '<2/kiw>'。我要做的是基于内容,删除“ <”,“>”,然后创建两个新的单独列,例如此列b:152 ; 42; 2,列c:'abcx', 'da', 'kiw'

df.a.str[df.a.str.find('<')+1:df.a.str.find('/')-1]

我尝试的代码不起作用

2 个答案:

答案 0 :(得分:2)

尝试使用此代码:

df = pd.DataFrame({'a': ['<152/abcx>' ,'<42/da>', '<2/kiw>']})
df = df['a'].str.strip('<>').str.split('/', expand=True)
df.columns = ['columnb', 'columnc']
print(df)

输出:

  columnb columnc
0     152    abcx
1      42      da
2       2     kiw

答案 1 :(得分:0)

这是我想您正在找到的解决方案:

import pandas as pd 
def f(x):
    x = x.split('/')
    return pd.Series([x[0].replace('<',''),x[1].replace('>','')])


df =pd.DataFrame({'a':['<152/abcx>' ,'<42/da>', '<2/kiw>']})
df[['c1','c2']] = df['a'].apply(f)
print(df)

输出:

            a   c1    c2
0  <152/abcx>  152  abcx
1     <42/da>   42    da
2     <2/kiw>    2   kiw
[Finished in 2.7s]