Pandas Dataframe 中的链df.str.split()

ilmyapht  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(152)

我们如何链接df.col.str.split(),因为如果expand = True,它会返回拆分的列。我在执行.melt()后试图拆分一列。如果我使用assign,我最终会使用原始列,而融化的列实际上甚至不存在。

df
      .melt(...)
      .assign(
         col1=df.col.str.split(...)[0], 
         col2=df.col.str.split(...)[1]
      )
v1l68za4

v1l68za41#

不确定你要做什么。但我可以确定的是,你不能直接在一个序列上使用[0](至少不能做你想做的事情)。但是你可以再次调用.str,这样你就可以使用[0]运算符了
范例

df=pd.DataFrame({'s':['abc-def|ghi', 'one-two|three']})
df.s.str.split('-').str[0]
#0    abc
#1    one
#Name: s, dtype: object

df.s.str.split('-').str[1].str.split('|').str[0]
#0    def
#1    two
#Name: s, dtype: object

df.s.str.split('-').str[1].str.split('|').str[1]
#0      ghi
#1    three
#Name: s, dtype: object

注意,这里有一半的.str是反直觉的,因为我们并没有真正在结果(数组)上使用字符串函数。但是.str也可以在数组上工作,以及在任何使用[..]索引的东西上工作。只要你不在其上调用字符串特定的函数。所以这是一个技巧:序列上的.str允许对序列中的元素调用字符串方法,而一些字符串方法,包括索引,碰巧对数组也有意义。

相关问题