2015-08-25 64 views
1

我有一個數據幀是這樣的:分割字符串基於字符位置

   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 

和我想只保留所以第1行,我只希望保留2010[9:12]之間的字符列Basic Stats而對於第2行,我只想保留2009。有沒有辦法做到這一點?

回答

1

一種方法是使用

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

你可以這樣做:

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

您可以slice

df["Basic Stats"] = df["Basic Stats"].str.slice(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 
2

只需使用矢量化str方法切分您的字符串:

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