Удаление круглых скобок из фрейма пар lat / lon

Я уверен, что это очень простая вещь, но у меня, похоже, возникают проблемы! (Я тоже довольно новичок в этом).

У меня есть dataframe, содержащий длинные координаты lat:

LatLon 0 (49.766795012580374, -7.556440128791576) 1 (49.766843444728075, -7.556439417755133) 2 (49.766843444728075, -7.556439417755133) 

Я хотел бы удалить круглые скобки / круглые скобки, но я просто не могу это исправить.

Я продолжаю получать ошибки, как

AttributeError: может использовать только .str accessor со строковыми значениями, которые используют np.object_ dtype в pandas

Но я не уверен, что делать, чтобы исправить это.

Я думаю, что это потому, что тип является объектом – поэтому мне нужно сначала преобразовать его в строку?

Если я делаю .info() :

 <class 'pandas.core.frame.DataFrame'> Int64Index: 22899 entries, 0 to 22898 Data columns (total 1 columns): LatLon 22899 non-null object dtypes: object(1) 

и df.dtypes :

 LatLon object dtype: object 

С обновленным вопросом, вот обновленный ответ.

Предположим, что у нас есть этот список кортежей:

 >>> li [(49.766795012580374, -7.556440128791576), (49.766843444728075, -7.556439417755133), (49.766843444728075, -7.556439417755133)] 

Мы можем напрямую создать кадр данных (который в основном представляет собой матрицу или список списков):

 >>> df1=pd.DataFrame(li) >>> df1 0 1 0 49.766795 -7.556440 1 49.766843 -7.556439 2 49.766843 -7.556439 >>> df1.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 3 entries, 0 to 2 Data columns (total 2 columns): 0 3 non-null float64 1 3 non-null float64 dtypes: float64(2) memory usage: 72.0 bytes 

Обратите внимание, что это 2-х столбцовый фрейм данных с поплавками.

Однако представьте себе, что у нас есть этот список, который представляет собой список списков кортежей:

 >>> li2 [[(49.766795012580374, -7.556440128791576)], [(49.766843444728075, -7.556439417755133)], [(49.766843444728075, -7.556439417755133)]] 

Если вы создадите фрейм данных здесь, вы получите то, что у вас есть в примере:

 >>> df2=pd.DataFrame(li2) >>> df2 0 0 (49.7667950126, -7.55644012879) 1 (49.7668434447, -7.55643941776) 2 (49.7668434447, -7.55643941776) >>> df2.info() <class 'pandas.core.frame.DataFrame'> Int64Index: 3 entries, 0 to 2 Data columns (total 1 columns): 0 3 non-null object dtypes: object(1) 

Который представляет собой один столбец данных кортежей.

Поэтому я предполагаю, что ваша проблема заключается в первоначальном создании фрейма данных. Вместо списка списков или списка кортежей исходные данные имеют список списков кортежей (или список кортежей кортежей и т. Д.) …

Исправить (если я прав) – сгладить список источников на один уровень:

 >>> pd.DataFrame(t for sl in li2 for t in sl) 0 1 0 49.766795 -7.556440 1 49.766843 -7.556439 2 49.766843 -7.556439