如何以相反的顺序保存熊猫的分割数据?

时间:2016-10-16 11:05:54

标签: python pandas

您可以使用它来创建数据框:

xyz = pd.DataFrame({'release' : ['7 June 2013', '2012', '31 January 2013',
                                 'February 2008', '17 June 2014', '2013']})

我正在尝试拆分数据并使用此命令将它们保存到名为“日,月和年”的3列中:

dataframe[['day','month','year']] = dataframe['release'].str.rsplit(expand=True) 

结果数据框是: dataframe

正如您所看到的,它在获得3个字符串时效果很好,但每当它获得少于3个字符串时,它会将数据保存在错误的位置。

我尝试过split和rsplit,两者都给出了相同的结果。 任何解决方案都可以在正确的位置获取数据?

最后一个是年份,它存在于每个条件中,它应该是第一个被保存的,然后是月份,如果它存在,否则什么都没有,并且应该存储日期。

2 个答案:

答案 0 :(得分:2)

你可以

In [17]: dataframe[['year', 'month', 'day']] = dataframe['release'].apply(
                                                    lambda x: pd.Series(x.split()[::-1]))
In [18]: dataframe
Out[18]:
           release  year     month  day
0      7 June 2013  2013      June    7
1             2012  2012       NaN  NaN
2  31 January 2013  2013   January   31
3    February 2008  2008  February  NaN
4     17 June 2014  2014      June   17
5             2013  2013       NaN  NaN

答案 1 :(得分:0)

尝试撤消结果。

dataframe[['year','month','day']] = dataframe['release'].str.rsplit(expand=True).reverse()