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