<Python, pdandas> データフレームの上の文字列を切り取る

データフレーム上の文字列値を切り取る。

In [31]: df = pd.DataFrame([['abcdeft','hijklmn'],['0123456','7890ast']])

In [32]: df
Out[32]: 
         0        1
0  abcdeft  hijklmn
1  0123456  7890ast

In [33]: df[0].str[0]
Out[33]: 
0    a
1    0
Name: 0, dtype: object

In [34]: df[0].str[0:3]
Out[34]: 
0    abc
1    012
Name: 0, dtype: object

In [35]: df[0].str[2:5]
Out[35]: 
0    cde
1    234
Name: 0, dtype: object

In [36]: df['a'] = df[0].str[2:5]

In [37]: df
Out[37]: 
         0        1    a
0  abcdeft  hijklmn  cde
1  0123456  7890ast  234

strメソッドでスライスで切り取れる。

ただ、

In [38]: df.str[0]
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-33-60f5a9fc3608> in <module>()
----> 1 df.str[0]

C:\WinPython-64bit-3.4.3.1\python-3.4.3.amd64\Lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
   1938 
   1939         if name in self._internal_names_set:
-> 1940             return object.__getattribute__(self, name)
   1941         elif name in self._metadata:
   1942             return object.__getattribute__(self, name)

AttributeError: 'DataFrame' object has no attribute 'str'

DataFrame全体ではNGらしい。 Seriesの単位でらしい。。。

Working with Text Data — pandas 0.16.0-107-ga63d36b documentation