<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