Я пытаюсь заполнить DataFrame Pandas на основе данных JSON (сведения о генеральных директорах соответствующих компаний из списка Fortune 500), возвращаемых OpenAI API. Вот пример данных, с которыми я работаю.
sample_df = pd.DataFrame({
'Rank': [1, 2, 3],
'Company': ['Walmart', 'Amazon', 'State Grid'],
'Revenue': ['$648,125', '$574,785', '$545,947.5'],
'Profit': ['6%', '11.8%', '3%'],
'Assets': ['$15,511', '$30,425', '$9,204.3'],
'Market Value': ['32.8%', '-', '12.4%']
})
sample_df.head()
Однако, когда я запускаю цикл for, чтобы получить некоторую дополнительную информацию через API openai, я получаю некоторую пустую информацию, а не запускаю ее вне цикла for. Как убедиться, что вся информация заполнена правильно?
{
"Company": "Walmart",
"Country of Origin": "United States",
"Industry": "Retail",
"CEO name": "",
"Bachelor Degree": "",
"University Attended for Bachelor Degree": "",
"MBA": "",
"University for MBA": ""
}
{
"Company": "Amazon",
"Country of Origin": "United States",
"Industry": "E-commerce, Cloud Computing, Artificial Intelligence, Consumer Electronics, Digital Streaming, and more",
"CEO name": "Andy Jassy",
"Bachelor Degree": "Degree in Computer Science and Electrical Engineering",
"University Attended for Bachelor Degree": "Harvard University",
"MBA": "Yes",
"University for MBA": "Harvard Business School"
}
{
"Company": "State Grid",
"Country of Origin": "China",
"Industry": "Energy",
"CEO name": "",
"Bachelor Degree": "",
"University Attended for Bachelor Degree": "",
"MBA": "",
"University for MBA": ""
}
Ниже приведен мой код (Python):
df_json = pd.DataFrame()
json_format =["Company", "Country of Origin", "Industry", "CEO name", "Bachelor Degree", "University Attended for Bachelor Degree", "MBA", "University for MBA"]
for index, row in sample_df.iterrows():
# print(row['Company'])
company_name = row['Company']
user_prompt = f"""List out the following details of the {company_name} in JSON format where the keys are based on the format listed in the json_format.
'''
{json_format}
''
"""
completion = client.chat.completions.create(
model= "gpt-3.5-turbo-0125",
response_format = {"type": "json_object"},
messages=[
{"role": "system", "content": "You are a helpful assistant designed to output in JSON."},
{"role": "user", "content": user_prompt}
]
)
print(completion.choices[0].message.content)
json_data = completion.choices[0].message.content
json_data = json.loads(json_data)
new_row = pd.DataFrame({
"Company": [json_data.get("Company", "")],
"Country of Origin": [json_data.get("Country of Origin", "")],
"Industry": [json_data.get("Industry", "")],
"CEO name": [json_data.get("CEO name", "")],
"Bachelor Degree": [json_data.get("Bachelor Degree", "")],
"University Attended for Bachelor Degree": [json_data.get("University Attended for Bachelor Degree", "")],
"MBA": [json_data.get("MBA", "")],
"University for MBA": [json_data.get("University for MBA", "")]
})
df_json = pd.concat([df_json, new_row], ignore_index=True)
# print(completion.choices[0].message.content)
Подробнее здесь: https://stackoverflow.com/questions/793 ... -openai-ap
Pandas DataFrame не заполняется должным образом из данных JSON, созданных OpenAI API ⇐ Python
Программы на Python
1735981074
Anonymous
Я пытаюсь заполнить DataFrame Pandas на основе данных JSON (сведения о генеральных директорах соответствующих компаний из списка Fortune 500), возвращаемых OpenAI API. Вот пример данных, с которыми я работаю.
sample_df = pd.DataFrame({
'Rank': [1, 2, 3],
'Company': ['Walmart', 'Amazon', 'State Grid'],
'Revenue': ['$648,125', '$574,785', '$545,947.5'],
'Profit': ['6%', '11.8%', '3%'],
'Assets': ['$15,511', '$30,425', '$9,204.3'],
'Market Value': ['32.8%', '-', '12.4%']
})
sample_df.head()
Однако, когда я запускаю цикл for, чтобы получить некоторую дополнительную информацию через API openai, я получаю некоторую пустую информацию, а не запускаю ее вне цикла for. Как убедиться, что вся информация заполнена правильно?
{
"Company": "Walmart",
"Country of Origin": "United States",
"Industry": "Retail",
"CEO name": "",
"Bachelor Degree": "",
"University Attended for Bachelor Degree": "",
"MBA": "",
"University for MBA": ""
}
{
"Company": "Amazon",
"Country of Origin": "United States",
"Industry": "E-commerce, Cloud Computing, Artificial Intelligence, Consumer Electronics, Digital Streaming, and more",
"CEO name": "Andy Jassy",
"Bachelor Degree": "Degree in Computer Science and Electrical Engineering",
"University Attended for Bachelor Degree": "Harvard University",
"MBA": "Yes",
"University for MBA": "Harvard Business School"
}
{
"Company": "State Grid",
"Country of Origin": "China",
"Industry": "Energy",
"CEO name": "",
"Bachelor Degree": "",
"University Attended for Bachelor Degree": "",
"MBA": "",
"University for MBA": ""
}
Ниже приведен мой код (Python):
df_json = pd.DataFrame()
json_format =["Company", "Country of Origin", "Industry", "CEO name", "Bachelor Degree", "University Attended for Bachelor Degree", "MBA", "University for MBA"]
for index, row in sample_df.iterrows():
# print(row['Company'])
company_name = row['Company']
user_prompt = f"""List out the following details of the {company_name} in JSON format where the keys are based on the format listed in the json_format.
'''
{json_format}
''
"""
completion = client.chat.completions.create(
model= "gpt-3.5-turbo-0125",
response_format = {"type": "json_object"},
messages=[
{"role": "system", "content": "You are a helpful assistant designed to output in JSON."},
{"role": "user", "content": user_prompt}
]
)
print(completion.choices[0].message.content)
json_data = completion.choices[0].message.content
json_data = json.loads(json_data)
new_row = pd.DataFrame({
"Company": [json_data.get("Company", "")],
"Country of Origin": [json_data.get("Country of Origin", "")],
"Industry": [json_data.get("Industry", "")],
"CEO name": [json_data.get("CEO name", "")],
"Bachelor Degree": [json_data.get("Bachelor Degree", "")],
"University Attended for Bachelor Degree": [json_data.get("University Attended for Bachelor Degree", "")],
"MBA": [json_data.get("MBA", "")],
"University for MBA": [json_data.get("University for MBA", "")]
})
df_json = pd.concat([df_json, new_row], ignore_index=True)
# print(completion.choices[0].message.content)
Подробнее здесь: [url]https://stackoverflow.com/questions/79328516/pandas-dataframe-not-populating-as-expected-from-json-data-produced-by-openai-ap[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия