Я выполняю этот код в блокноте Jupyter.
Я пытаюсь изменить тип объекта в моих фреймах данных, который выглядит следующим образом:
column 1
#Green #Blue #Orange
#Green #Red
#Blue #Orange
#Orange
На это:
column 1
[Green, Blue, Orange]
[Green, Red]
[Blue, Orange]
[Orange]
Когда я пытаюсь использовать строковые методы для одного столбца в одном кадре данных со следующим кодом, это работает.
df1['column 1'] = df1['column 1'].str.replace('#', ' ')
df1['column 1'] = df1['column 1'].str.split(',')
Но когда я пытаюсь сжать этот процесс в все oop для одного и того же столбца в нескольких фреймах данных я получаю ошибку атрибута (ie AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
):
df_list = [df1, df2, df3, df4, df5]
for df in df_list:
df['column 1'] = df['column 1'].str.replace('#', ' ')
df['column 1'] = df['column 1'].str.split(',')
Почему это происходит, когда они по сути одинаковы?
Это это ошибка трассировки в моем ноутбуке Jupyter:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-276-51c1ece881fa> in <module>
4 for df in df_list:
5 df['player_tags'] = df['player_tags'].str.replace('#', ' ')
----> 6 df['player_tags'] = df['player_tags'].str.split(',')
~/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
3608 if (name in self._internal_names_set or name in self._metadata or
3609 name in self._accessors):
-> 3610 return object.__getattribute__(self, name)
3611 else:
3612 if name in self._info_axis:
~/anaconda3/lib/python3.6/site-packages/pandas/core/accessor.py in __get__(self, instance, owner)
52 # this ensures that Series.str.<method> is well defined
53 return self.accessor_cls
---> 54 return self.construct_accessor(instance)
55
56 def __set__(self, instance, value):
~/anaconda3/lib/python3.6/site-packages/pandas/core/strings.py in _make_accessor(cls, data)
1908 # (instead of test for object dtype), but that isn't practical for
1909 # performance reasons until we have a str dtype (GH 9343)
-> 1910 raise AttributeError("Can only use .str accessor with string "
1911 "values, which use np.object_ dtype in "
1912 "pandas")
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas