Python 3.x 我在列中有一个值作为平装本&x2013;2016年3月10日,我只想从中获取月份和年份。我应该如何在python中实现它

Python 3.x 我在列中有一个值作为平装本&x2013;2016年3月10日,我只想从中获取月份和年份。我应该如何在python中实现它,python-3.x,Python 3.x,我有一个名为edition的专栏,专栏值是“平装版,2016年3月10日”,我只想从中获取月份和年份 我已经试过了 train_df['Edition_Year'] = train_df['Edition'].str.split(' ').str[3] 但是所有的值都不在同一个长度内,所以我没有得到正确的结果 列中的值为 Paperback,– 10 Mar 2016 Hardcover,– Import, 1 Mar 2018 像这样 train_df['Edition_Year'] =

我有一个名为edition的专栏,专栏值是“平装版,2016年3月10日”,我只想从中获取月份和年份

我已经试过了

train_df['Edition_Year'] = train_df['Edition'].str.split(' ').str[3]
但是所有的值都不在同一个长度内,所以我没有得到正确的结果

列中的值为

Paperback,– 10 Mar 2016 
Hardcover,– Import, 1 Mar 2018
像这样

train_df['Edition_Year'] = train_df['Edition'].str.split(' ').str[3]

我想得到两列,一列用于月份,另一列用于年份

您可以使用反向索引:

import pandas as pd

df = pd.DataFrame(['Paperback,– 10 Mar 2016 Hardcover,– Import, 1 Mar 2018'], columns=['Edition'])

print (df)

df['Month'] = df['Edition'].str.split(' ').str[-2] 
df['Year']  = df['Edition'].str.split(' ').str[-1]

print(df)
输出:

# before
                                             Edition
0  Paperback,– 10 Mar 2016 Hardcover,– Import, 1 ...

# after
                                             Edition Month  Year
0  Paperback,– 10 Mar 2016 Hardcover,– Import, 1 ...   Mar  2018
阅读更多: