亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從字典中提取值并有條件地將它們分配給 pandas 中的列

從字典中提取值并有條件地將它們分配給 pandas 中的列

長風秋雁 2023-06-27 16:16:38
我試圖從 pandas 的一列字典中提取值并將它們分配給已經存在的各自列。我在下面硬編碼了我擁有的數據集的示例:df_have = pd.DataFrame({    'value_column':[np.nan, np.nan, np.nan]    ,'date':[np.nan, np.nan, np.nan]    ,'string_column':[np.nan, np.nan, np.nan]    , 'dict':[[{'value_column':40},{'date':'2017-08-01'}],[{'value_column':30}, {'string_column':'abc'}],[{'value_column':10},{'date':'2016-12-01'}]]})df_havedf_want = pd.DataFrame(    {        'value_column':[40, 30, 10]        ,'date':['2017-08-01', np.nan, '2016-12-01']        ,'string_column':[np.nan, 'abc', np.nan]        ,'dict':[[{'value_column':40},{'date':'2017-08-01'}],[{'value_column':30}, {'string_column':'abc'}],[{'value_column':10},{'date':'2016-12-01'}]]})df_want我設法使用循環從字典中提取值:'''for row in range(len(df_have)):    row_holder = df_have.dict[row]    number_of_dictionaries_in_the_row = len(row_holder)        for dictionary in range(number_of_dictionaries_in_the_row):        variable_holder = df_have.dict[row][dictionary].keys()        variable = list(variable_holder)[0]        value = df_have.dict[row][dictionary].get(variable) '''我現在需要以某種方式有條件地將 df_have 轉換為 df_want。我很高興采取一種全新的方法并從頭開始重新創建整個事情。我們甚至可以假設我只有一個包含字典的數據框,沒有其他任何東西。
查看完整描述

1 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

您可以使用 pandas 字符串方法來提取數據,盡管我認為在 Pandas 中嵌套數據結構效率低下:


df_have.loc[:, "value_column"] = df_have["dict"].str.get(0).str.get("value_column")

df_have.loc[:, "date"] = df_have["dict"].str.get(-1).str.get("date")

df_have.loc[:, "string_column"] = df_have["dict"].str.get(-1).str.get("string_column")



 value_column   date       string_column    dict

0   40        2017-08-01    None    [{'value_column': 40}, {'date': '2017-08-01'}]

1   30        None          abc     [{'value_column': 30}, {'string_column': 'abc'}]

2   10        2016-12-01    None    [{'value_column': 10}, {'date': '2016-12-01'}]


查看完整回答
反對 回復 2023-06-27
  • 1 回答
  • 0 關注
  • 176 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號