我有一个dataframe column
,我想分成3列。
o_order_df
expiry
0 27-Sep-2018-260-CE
1 27-Sep-2018-250-CE
o_order_df[['expiry','strike','type']] = o_order_df['expiry'].str.split('-', n>=2, expand=True)
我想在split
的第三次出现时column
-
。
我不断收到错误消息:
回溯(最近通话最近): 文件“”,第1行,位于 NameError:名称“ n”未定义
预期产量
o_order_df
expiry strike type
0 27-Sep-2018 260 CE
1 27-Sep-2018 250 CE
我可以用定界符split
来列。
TIA
答案 0 :(得分:2)
将n=2
与rsplit
一起使用:
o_order_df[['expiry','strike','type']] = o_order_df['expiry'].str.rsplit('-',n=2,expand=True)
如果性能很重要,请结合rsplit
使用列表理解:
c = ['expiry','strike','type']
df = pd.DataFrame([x.rsplit('-', 2) for x in o_order_df['expiry']], columns=c)
print (df)
expiry strike type
0 27-Sep-2018 260 CE
1 27-Sep-2018 250 CE