2
我有一個大熊貓數據幀,看起來像這樣的數據:追加字典元素到一個空的熊貓數據框列
queryName Market tags categoryDetails
dummy_query (dummy_market) dummy_market dummy_tag [{'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '2892695401'}, {'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '21892718'}, {'name': 'dummy_data', 'parentName': 'Location', 'parentId': '21221517840', 'id': '229565351'}]
dummy_query (dummy_market) dummy_market dummy_tag [{'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '2892659'}, {'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '2892667'}, {'name': 'irrelevant_data', 'parentName': 'irrelevant_scrape', 'parentId': '2662610', 'id': '268415777'}, {'name': 'dummy_data', 'parentName': 'Location', 'parentId': '21221517840', 'id': '2565351'}]
dummy_query (dummy_market) dummy_market dummy_tag [{'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '2892695401'}, {'name': 'irrelevant_data', 'parentName': 'irrelevant_scrape', 'parentId': '2662610', 'id': '268415777'}, {'name': 'dummy_data', 'parentName': 'Location', 'parentId': '21221517840', 'id': '229565351'}, {'name': 'Consideration', 'parentName': 'irrelevant_scrape', 'parentId': '2203873', 'id': '2203874'}]
dummy_query (dummy_market) dummy_market dummy_tag [{'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '2892695401'}, {'name': 'irrelevant_data', 'parentName': 'irrelevant_scrape', 'parentId': '2662610', 'id': '268415777'}, {'name': 'dummy_data', 'parentName': 'Location', 'parentId': '21221517840', 'id': '229565351'}]
dummy_query (dummy_market) dummy_market dummy_tag [{'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '21892718'}, {'name': 'irrelevant_data', 'parentName': 'irrelevant_scrape', 'parentId': '2662610', 'id': '268415777'}, {'name': 'dummy_data', 'parentName': 'Location', 'parentId': '21221517840', 'id': '229565351'}]
dummy_query (dummy_market) dummy_market dummy_tag [{'name': 'relevant_data', 'parentName': 'relevant_scrape', 'parentId': '289245228', 'id': '2892659'}, {'name': 'dummy_data', 'parentName': 'Location', 'parentId': '21221517840', 'id': '229565351'}, {'name': 'dummy_data', 'parentName': 'irrelevant_scrape', 'parentId': '2203873', 'id': '2203880'}]
我需要我的數據幀有一個額外的,第五列其中將包含所有的名稱鍵與每行的元素稱爲「relevant_data」。這些數據點是根據parentName選擇的。如果parentName ='relevant_scrape',請選擇「名稱」。
我應該怎麼做呢?這是我的代碼到目前爲止。
import pandas as pd
import json
from pandas import DataFrame, read_csv
df = pd.read_csv('dataset.csv', sep = '\t')
for row in df.categoryDetails:
if isinstance(row, str):
list_dicts = json.loads(row.replace("'", "\""))
for each_dict in list_dicts:
if each_dict["parentName"] == "relevant_scrape":
df['fifth_column'] = each_dict["name"]
df.to_csv('output.txt', sep = '\t')
(注:我的原始數據是有點亂,直到我更換了引號用雙引號因此,json.loads呼叫無法呈現爲JSON。)
這將產生對於我來說,第五列是一個數據框,但它在每一行中插入了相同的「name」元素。任何和所有的幫助表示讚賞,謝謝。
我:「類型錯誤:‘海峽’對象不支持項目分配」當我更換與行的列。 – dataelephant
我已經更新了答案。 – OmerBA
執行該操作,但該列(第五列)中的所有數據都從第一個「relevant_data」中複製。有任何想法嗎? – dataelephant