Wszystko,
Obecnie mój zestaw danych pandy wygląda następująco i chciałbym przekonwertować moją ramkę danych tak, aby wyglądała jak następująca. Moje wymagania są poniżej
Bieżąca ramka danych:
df.tail()
age country females males total year
96 United States 72700 22700 95400 2010
97 United States 50300 14500 64800 2010
98 United States 35000 8730 43700 2010
99 United States 25200 4920 30100 2010
100 United State 51200 9570 60800 2010
Uwaga: Rozumiem, że moja wymagana konwersja jest w formacie JSON, ale zasadniczo chciałbym przekonwertować moje kolumny kobiet i mężczyzn, aby móc utworzyć kolumnę Płeć w moim zbiorze danych i przypisać wartości 1. i 2, a także utrzymywanie liczby samców i samic w zbiorze danych. Jestem nowicjuszem w Pythonie, jeśli możesz podać wyjaśnienie z kodem, który będzie świetny!
1 odpowiedź
Możesz trochę zmienić kształt melt
, map
dla płci i to_dict, aby uzyskać listę słowników.
v = (df.melt(['age', 'country', 'total', 'year'])
.rename({'variable': 'sex', 'total': 'people'}, axis=1))
v['sex'] = v['sex'].map({'males':1, 'females':2})
data = v.drop('value',1).to_dict('r')
print(data)
[{'age': 96,
'country': 'United States',
'people': 95400,
'sex': 2,
'year': 2010},
{'age': 97,
'country': 'United States',
'people': 64800,
'sex': 2,
'year': 2010},
...
]
Możesz zamiast tego chcieć JSON, więc użyj
json_data = v.drop('value',1).to_json(orient='records')
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.