【问题标题】:Easiest way to keep only last column after splitting text to columns将文本拆分为列后仅保留最后一列的最简单方法
【发布时间】:2019-06-08 07:09:12
【问题描述】:

所以我正在使用 pandas,并且我有一个数据框,其中一列看起来像

  1. abc/def/ghi/jkl
  2. mno/pqr/stu/vwx/yz
  3. 123/23/24/24/24/53/523/23/111

我要做的是将文本拆分为列(/ 的分隔符)并仅保留最后一列,以便数据看起来像:

  1. jkl
  2. yz
  3. 111

有没有相对简单的方法来做到这一点?提前致谢!

【问题讨论】:

  • 为什么第二个是 mno ?不是yz
  • 因为我是勺子 :D 现在修复了

标签: python pandas


【解决方案1】:

使用带有索引的split 选择列表的最后一个值:

df['new'] = df['col'].str.split('/').str[-1]

如果没有缺失值和性能很重要,请使用列表理解:

df['new'] = [x.split('/')[-1] for x in df['col']]

df['new'] = df['col'].str.split('/').str[-1]
print (df)
                             col  new
0                abc/def/ghi/jkl  jkl
1             mno/pqr/stu/vwx/yz   yz
2  123/23/24/24/24/53/523/23/111  111

【讨论】:

  • 感谢这个工作,是否可以同时将其应用于所有列? (在我的情况下超过 100 个)
  • @Jordan - DataFrame 中的所有列都是带有/ 的字符串,需要拆分它们吗?或者需要通过位置或名称以某种方式指定列?
  • 是的,所有列都是带 / 的字符串,需要拆分(并保留最后一个值),再次感谢您的帮助,如您所见,我是 python 新手 :)
  • @Jordan - 使用df = df.apply(lambda x: x.str.split('/').str[-1])
  • 效果很好,再次感谢你是英雄哈哈
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-27
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多