@Goobee

Как правильно обработать данные и записать их снова?

Здравствуйте! У меня есть DataFrame, я беру данные из одного столбца и изменяю данные. Потом пытаюсь их обратно записать, но почему-то в весь столбец записывается одно и тоже значение. Подскажите, пожалуйста, в чем может быть ошибка.
benz = pd.read_xml(benz_xml_file, xpath='.//filling')
benz_df = pd.DataFrame(benz)
time = list(benz['time'].values)
for i in time:
    data = change_data(i)
benz_df['time'] = data
benz_df['time'][:50]

6567846368cac058760090.png
  • Вопрос задан
  • 21 просмотр
Пригласить эксперта
Ответы на вопрос 1
Maksim_64
@Maksim_64
Data Analyst
for i in time:
    data = change_data(i)
Ну ты перезаписываешь свои данные да и все. То есть в data у тебя остается последний результат вызова функции для последнего i.
Затем ты присваеваешь benz_df['time'] = data колонке time, значение data. Он его броадкастит на всю колонку да и все. Ты ожидаешь что data это массив c данными, а это одно значение.

По коду сделай data вне цикла пустым списком и добавляй туда результат вызова своей функции. То есть вот так
data= []
for i in time:
    data.append(change_data(i))


Ну а вообще так делать не правильно, все эти операции надо производить средствами pandas
хотя бы как то так.
benz = pd.read_xml(benz_xml_file, xpath='.//filling')
benz_df = pd.DataFrame(benz)
benz_df['time'] = benz_df['time'].apply(change_data)
benz_df['time'][:50]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы