Pretvárajú sériu-typ stĺpca do druhého dataframe

0

Otázka

Mám rest api vracia sa mi, že niektoré údaje, medzi nimi niektoré vo forme odkazov, tak som zavolať na tento odkaz a uložiť všetky v dataframe, ale I potrebné odstrániť niektoré hodnoty z týchto zoznamov a zreťazenie s dataframe, niekto vedieť, ako na to?

 response = requests.get(url,auth=(usr,psw),headers=headers)
 df = pd.DataFrame(response.json()['result']) 
 def get_data_from_link (data):
 return requests.get(data['link'],auth=(usr,psw),headers=headers).json()

 df['assignment_group_response']=df['assignment_group'].apply(get_data_from_link)

stĺpec I musieť transformovať

0      {'result': {'attested_date': '', 'skip_sync': ...
1      {'result': {'attested_date': '', 'skip_sync': ...
2      {'result': {'attested_date': '', 'skip_sync': ...
api dataframe pandas python
2021-11-23 22:30:13
1

Najlepšiu odpoveď

0

Počiatočné dataframe po načítaní dát môžete použiť odkaz:

    assignment_group_response
0   {'name': 'abc', 'extra': {'value': 123}}
1   {'name': 'def', 'extra': {'value': 456}}
2   {'name': 'xyz', 'extra': {'value': 789}}

Teraz, budem vytvárať nové stĺpce a získať hodnoty z vnorených slovník

df["name"] = df["assignment_group_response"].apply(lambda x: x["name"])
df["extra"] = df["assignment_group_response"].apply(lambda x: x["extra"])
df["value"] = df["assignment_group_response"].apply(lambda x: x["extra"]["value"])

Po pridaní stĺpcov, v dataframe by vyzerať takto:

                   assignment_group_response   name         extra   value
0   {'name': 'abc', 'extra': {'value': 123}}    abc {'value': 123}  123
1   {'name': 'def', 'extra': {'value': 456}}    def {'value': 456}  456
2   {'name': 'xyz', 'extra': {'value': 789}}    xyz {'value': 789}  789

2021-11-25 09:11:19

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................