对熊猫DataFrame中的列进行.str.split()操作后,获取最后一个“列”


问题内容

我在pandas DataFrame中有一列想要在一个空格上拆分。使用进行拆分非常简单DataFrame.str.split(' '),但是我无法从最后一个条目中创建新列。当我.str.split()进入列时,我得到了一个数组列表,但我不知道如何操纵它来为我的DataFrame获取新列。

这是一个例子。列中的每个条目都包含“符号数据价格”,我想将价格分开(并在一半情况下最终删除“ p” …或“ c”)。

import pandas as pd
temp = pd.DataFrame({'ticker' : ['spx 5/25/2001 p500', 'spx 5/25/2001 p600', 'spx 5/25/2001 p700']})
temp2 = temp.ticker.str.split(' ')

产生

0    ['spx', '5/25/2001', 'p500']
1    ['spx', '5/25/2001', 'p600']
2    ['spx', '5/25/2001', 'p700']

但是temp2[0]只给出一个列表项的数组temp2[:][-1]就会失败。如何将每个数组中的最后一个条目转换为新列?谢谢!


问题答案:

做这个:

In [43]: temp2.str[-1]
Out[43]: 
0    p500
1    p600
2    p700
Name: ticker

因此,总计为:

>>> temp = pd.DataFrame({'ticker' : ['spx 5/25/2001 p500', 'spx 5/25/2001 p600', 'spx 5/25/2001 p700']})
>>> temp['ticker'].str.split(' ').str[-1]
0    p500
1    p600
2    p700
Name: ticker, dtype: object