Python:使用 Lambda 将字符串字段拆分为 3 个单独的字段

标签 python string pandas lambda split

我有一个 Python 数据框,其中包含一个名为“SEGMENT”的列。我想将该列分成三列。请查看我想要的以黄色突出显示的输出。

enter image description here

下面是我试过的代码。不幸的是,我什至无法让第一个替换语句起作用。 : 不会被 - 取代。任何帮助是极大的赞赏!

df_stack_ranking['CURRENT_AUM_SEGMENT'] = df_stack_ranking['CURRENT_AUM_SEGMENT'].replace(':', '-')

s = df_stack_ranking['CURRENT_AUM_SEGMENT'].str.split(' ').apply(Series, 1).stack()

s.index = s.index.droplevel(-1)

s.name = 'SEGMENT'

df_stack_ranking.join(s.apply(lambda x: Series(x.split(':'))))

最佳答案

设置

df = pd.DataFrame({'SEGMENT': {0: 'Hight:33-48', 1: 'Hight:33-48', 2: 'Very Hight:80-88'}})

df
Out[17]: 
            SEGMENT
0       Hight:33-48
1       Hight:33-48
2  Very Hight:80-88

解决方案

使用 split 将列分成 3 个部分,然后展开以创建一个新的 DF。

df.SEGMENT.str.split(':|-',expand=True)\
  .rename(columns=dict(zip(range(3),\
  ['SEGMENT','SEGMENT RANGE LOW','SEGMENT RANGE HIGH'])))
Out[13]: 
      SEGMENT SEGMENT RANGE LOW SEGMENT RANGE HIGH
0       Hight                33                 48
1       Hight                33                 48
2  Very Hight                80                 88

关于Python:使用 Lambda 将字符串字段拆分为 3 个单独的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298024/

相关文章:

python - 如何在 Windows64 上为 Python 3.5 安装 pydotplus

regex - 匹配空输入的 flex 脚本?

python - 如何在 python 中使用分组进行聚合

javascript - 如何获取相同字符串之间的字符串javascript

python - 列表推导式有效但 for 循环无效——为什么?

python - 当行具有不同顺序的相同值时删除行

python - 使用命令终端运行程序时出现问题

python - imread 返回 None,违反 assertion !_src.empty() in function 'cvtColor' 错误

python - Flask加载本地json

c++ - 在 C++ 中使用 map 的迭代差异