您可以使用tolist方法作为中介:
In [99]: import pandas as pd
In [100]: d1 = pd.DataFrame({'ticker' : ['spx 5/25/2001 p500', 'spx 5/25/2001 p600', 'spx 5/25/2001 p700']})
In [101]: d1.ticker.str.split().tolist()
Out[101]:
[['spx', '5/25/2001', 'p500'],
['spx', '5/25/2001', 'p600'],
['spx', '5/25/2001', 'p700']]
您可以从中创建一个新的DataFrame:
In [102]: d2 = pd.DataFrame(d1.ticker.str.split().tolist(),
.....: columns="symbol date price".split())
In [103]: d2
Out[103]:
symbol date price
0 spx 5/25/2001 p500
1 spx 5/25/2001 p600
2 spx 5/25/2001 p700
为了更好的衡量,您可以确定价格:
In [104]: d2["price"] = d2["price"].str.replace("p","").astype(float)
In [105]: d2
Out[105]:
symbol date price
0 spx 5/25/2001 500
1 spx 5/25/2001 600
2 spx 5/25/2001 700
PS:但如果你真的只想要最后一栏,申请就足够了:
In [113]: temp2.apply(lambda x: x[2])
Out[113]:
0 p500
1 p600
2 p700
Name: ticker