«Не удается установить DataFrame с несколькими столбцами в отдельный столбец», когда сценарий в функцииPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «Не удается установить DataFrame с несколькими столбцами в отдельный столбец», когда сценарий в функции

Сообщение Anonymous »

У меня есть функция, которая обрабатывает DataFrame из 6 столбцов. Похоже: < /p>

Код: Выделить всё

def Process_DF():

DF_6cols = "some data"

#Two functions to split column containing Column Val1 and Column Val2
def split_column_1(string):
str_len = len(string)
range_obj = range(str_len)
character = ","
for index in range_obj:
if string[index] == character:
position = index
return string[0:position]

def split_column_2(string):
str_len = len(string)
range_obj = range(str_len)
character = ","
for index in range_obj:
if string[index] == character:
position = index
return string[position+1:]

#Splitting column 6 into two proper columns and dropping it
DF_7cols["Column Val1"] = DF_6cols.apply(lambda x: split_column_1(x["Splittable Column"]), axis=1)
DF_8cols["Column Val2"] = DF_7cols.apply(lambda x: split_column_2(x["Splittable Column"]), axis=1)
DF_ToReturn = PTT_DataFrame_6Columns.drop("Splittable Colum", axis=1)

return DF_ToReturn
При попытке использовать из процесса импорта подписчиков_дф и вызовать его из основного сценария, я получаю следующую ошибку:

Код: Выделить всё

  File "subscript.py", line x, in Process_DF
DF_7cols["Column Val1"] = DF_6cols.apply(lambda x: split_column_1(x["Splittable Column"]), axis=1)
File "~\Python\Python310\site-packages\pandas\core\frame.py", line 4301, in __setitem__
self._set_item_frame_value(key, value)
File "~\Python\Python310\site-packages\pandas\core\frame.py", line 4459, in _set_item_frame_value
raise ValueError(
ValueError: Cannot set a DataFrame with multiple columns to the single column Column Val1
< /code>
С другой стороны, при попытке вывести его из функции и запустить тот же сценарий - ошибки не происходит, и она работает OK. Я также пытался взять функции split_column_1 
и split_column_2 , а также объявить их в основном скрипте или объявить их в файле и импорте индекса. Не уверен, почему PD пытается поместить несколько столбцов в одну в случае функции, когда он явно не выходит за рамки. Используется Python - 3.10, Pandas - 2.2.3 < /p>
Я проверил другие вопросы о аналогичной проблеме, но у них были решения, которые не решают мой случай.

Код: Выделить всё

Index   Splittable Column
1           ,FALSE
2      Not Acceptable, FALSE
3      Not Acceptable, FALSE
4           ,FALSE
5           ,FALSE
6           ,FALSE
Есть ли исправление для этого или обойти? К сожалению, в моем репексе я не смог показать, что может быть несколько случаев «присутствовать», и мне нужно, чтобы только последняя часть этого была в столбце 7 и первой части, чтобы быть в столбце 6.
Better Reprex данных, которые я имею, будет следующим: < /p>
data = {'Index': ['1', '2', '3','4'], 'Splittable column': [',FALSE', 'Not Acceptable,Failed,NAN,FALSE', 'Not acceptable,FALSE',',FALSE']}
DF_6cols = pd.DataFrame(data)
< /code>
Мне нужно, чтобы последний столбец был определенным статусом и данными в предыдущем столбце с объяснением того, что произошло. Может быть список причин или ответа на ошибку от SQL Server. Оба случая могут содержать несколько экземпляров с «в нем», поэтому мне пришлось прибегнуть к такому кодированию. Если есть лучший способ сделать это - я был бы рад применить это

Подробнее здесь: https://stackoverflow.com/questions/797 ... hen-script
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»