#python #json #excel #pandas #dataframe
Вопрос:
Итак, у меня было два файла jsons, из которых значения были извлечены в фрейм данных и сохранены на листе excel
Файл JSON1
{
"flower": {
"price": {
"type": "good",
"value": 5282.0,
"direction": "up"
}
},
"furniture": {
"price": {
"type": "comfy",
"value": 9074.0,
"direction": "down"
}
}
}
Файл JSON2
{
"flower": {
"price": {
"type": "good",
"value": 827.0,
"direction": "up"
}
},
"furniture": {
"price": {
"type": "comfy",
"value": 468.0,
"direction": "down"
}
}
}
чтобы создать фрейм данных и сохранить его на листе Excel, код был
import json
import pandas as pd
with open('jsonfile1.json', 'r') as f1:
data1 = json.load(f1)
with open('jsonfile2.json', 'r') as f2:
data2 = json.load(f2)
col1 = [data1['flower']['price']['value'], data1['furniture']['price']['value']]
col2 = [data2['flower']['price']['value'], data2['furniture']['price']['value']]
index = ['flower' , 'furniture' ]
df = pd.DataFrame({'value 1': col1, 'value2': col2, 'Test': index}).set_index('Test')
# storing into the excel file
df.to_excel('file.xlsx')
теперь вывод , который я хочу: применить формулу [{(значение 1 — значение 2)/значение 1}*100] в столбце 1 и столбце 2 , где результат должен отображаться в третьем столбце фрейма данных, как это показано на листе excel
поскольку я совсем новичок в изучении python, поэтому меня смущает, как применять формулы к столбцам в фрейме данных. так что я был бы благодарен , если бы кто-нибудь мог мне помочь!
Ответ №1:
Вы можете просто использовать столбцы для расчета:
df["col3"] = ((df["value 1"]-df["value2"])/df["value 1"])*100
Комментарии:
1. это дает ошибку, вы можете быть более конкретным?
2. Извините, я использовал неправильные названия столбцов. Попробуйте отредактированный код
3. пожалуйста , поделитесь своим запущенным кодом, потому что приведенное выше исправление все еще не работает и наблюдаются ошибки
4. Можете ли вы более конкретно рассказать об ошибках, которые вы наблюдаете? Я просто импортирую jsons, изменяю фрейм данных, как это сделали вы, и применяю опубликованную строку, чтобы получить столбец «col3».