Python 基于字符位置拆分列中的字符串

Python 基于字符位置拆分列中的字符串,python,pandas,Python,Pandas,我有这样一个数据帧: Basic Stats Min Max Mean Stdev 1 LT50300282010256PAC01 0.336438 0.743478 0.592622 0.052544 2 LT50300282009269PAC01 0.313259 0.678561 0.525667 0.048047 3 LT503002

我有这样一个数据帧:

                Basic Stats        Min       Max      Mean     Stdev   
1        LT50300282010256PAC01   0.336438  0.743478  0.592622  0.052544   
2        LT50300282009269PAC01   0.313259  0.678561  0.525667  0.048047   
3        LT50300282008253PAC01   0.374522  0.746828  0.583513  0.055989   
4        LT50300282007237PAC01  -0.000000  0.749325  0.330068  0.314351   
5        LT50300282006205PAC01  -0.000000  0.819288  0.600136  0.170060 
对于
Basic Stats
列,我只想保留
[9:12]
之间的字符,因此对于第1行,我只想保留
2010
,对于第2行,我只想保留
2009
。有办法做到这一点吗?

您可以:

df["Basic Stats"] = [ x[9:13] for x in df["Basic Stats"] ]

一种方法是使用

df['Basic Stats'] = df['Basic Stats'].map(lambda x: x[9:13])
你可以

输出:

  Basic Stats       Min       Max      Mean     Stdev
0        2010  0.336438  0.743478  0.592622  0.052544
1        2009  0.313259  0.678561  0.525667  0.048047
2        2008  0.374522  0.746828  0.583513  0.055989
3        2007 -0.000000  0.749325  0.330068  0.314351
4        2006 -0.000000  0.819288  0.600136  0.170060
只需使用矢量化方法分割字符串:

In [23]:

df['Basic Stats'].str[9:13]
Out[23]:
0    2010
1    2009
2    2008
3    2007
4    2006
Name: Basic Stats, dtype: object
In [23]:

df['Basic Stats'].str[9:13]
Out[23]:
0    2010
1    2009
2    2008
3    2007
4    2006
Name: Basic Stats, dtype: object