Я новичок в пандах и задавался вопросом, может ли кто-нибудь помочь мне.Как переименовать столбцы в python dataframe?
- Я написали код, показанный ниже.
- Содержимое json-файлов вставлено под сценарий.
- Под содержимым json мы видим вывод скрипта.
я просто хотел бы задать имя каждого столбца в выходной dataframe как имя объекта страны (например, Германия или Франция)
вместо того, чтобы этот выход
value name value name
tag
capital Paris France Berlin Germany
population 34111000000 France 11233000000 Germany
language French France German Germany
... я хотел бы что-то вроде этого
France Germany
tag
capital Paris Berlin Germany
population 34111000000 11233000000 Germany
language French German Germany
любая помощь будет оценена: -)
вот мой код ...
import numpy as np
import pandas as pd
import json
class Country(object):
def __init__(self,name):
self.name = name
self.json = name + "_Data.json"
def ImportJson(x):
ImportedJson = []
for country in x:
with open(country.json) as country_json_file:
country_data = json.load(country_json_file)
country_data_table = pd.DataFrame(country_data['data'], columns=['tag', 'value']).set_index('tag')
country_data_table['name'] = country.name
ImportedJson.append(country_data_table)
return ImportedJson
France = Country("France")
Germany = Country("Germany")
All_Countries = [France,Germany]
OpenedJson = ImportJson(All_Countries)
Country_Data = pd.concat(OpenedJson,axis=1)
print Country_Data
вот JSON файлы
Germany_Data.json
{
"data": [
{
"tag": "capital",
"value": "Berlin"
},
{
"tag": "population",
"value": 11233000000
},
{
"tag": "language",
"value": "German"
}
],
"result_count": 33,
"page_size": 5000,
"current_page": 1,
"total_pages": 1,
"api_call_credits": 1
}
France_Data.json
{
"data": [
{
"tag": "capital",
"value": "Paris"
},
{
"tag": "population",
"value": 34111000000
},
{
"tag": "language",
"value": "French"
}
],
"result_count": 33,
"page_size": 5000,
"current_page": 1,
"total_pages": 1,
"api_call_credits": 1
}
выход сценария
value name value name
tag
capital Paris France Berlin Germany
population 34111000000 France 11233000000 Germany
language French France German Germany
Это дает мне 'DF' со всеми' NaNs'. Возможно, вы хотели сделать - 'country_data_table.rename (columns = {'value': country.name}, inplace = True)' вместо второй строки. –
Yup. Хороший улов. Столбцы уже названы. –