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

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

熊貓未正確重新索引 NaN

熊貓未正確重新索引 NaN

臨摹微笑 2022-08-16 16:38:15
我在刪除NaN值后無法重新索引熊貓數據幀。我正在嘗試將df列中的字典提取到另一個df,然后將這些值連接回相應行中的原始df。df = pd.DataFrame({'col1': [1, 2, 3, 4, 5],                    'col2': [np.NaN, np.NaN, {'aa': 11, 'bb': 22}, {'aa': 33, 'bb': 44}, {'aa': 55, 'bb': 66}]})df    col1 col20   1    NaN1   2    NaN2   3    {'aa': 11, 'bb': 22}3   4    {'aa': 33, 'bb': 44}4   5    {'aa': 55, 'bb': 66}期望的最終結果是:    col1    aa      bb0   1       NaN     NaN1   2       NaN     NaN2   3       11      223   4       33      444   5       55      66如果我將 col2 傳遞給 pandas .tolist() 函數,則不會解壓縮該 dict。pd.DataFrame(df['col2'].tolist())0   NaN1   NaN2   {'aa': 11, 'bb': 22}3   {'aa': 33, 'bb': 44}4   {'aa': 55, 'bb': 66}如果我使用 dropna(),則字典被解壓縮,但索引被重置pd.DataFrame(df['col2'].dropna().tolist())    aa  bb0   11  221   33  442   55  66如果我嘗試將索引重置為原始df的索引,則行數據將顯示在不同的索引位置。pd.DataFrame(df['col2'].dropna().tolist()).reindex(df.index)    aa  bb0   11.0    22.01   33.0    44.02   55.0    66.03   NaN     NaN4   NaN     NaN數據是多種多樣的,并且無法知道列中任何一點將有多少個NaN值。任何幫助都非常感謝。
查看完整描述

3 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

使用Series.to_dict來考慮索引:


df.join(pd.DataFrame(df['col2'].to_dict()).T).drop(columns='col2')

   col1    aa    bb

0     1   NaN   NaN

1     2   NaN   NaN

2     3  11.0  22.0

3     4  33.0  44.0

4     5  55.0  66.0


查看完整回答
反對 回復 2022-08-16
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

IIUC 通過傳遞 after 來修復您的代碼indexdropna


s=df.col2.dropna()

df=df.join(pd.DataFrame(s.tolist(), index=s.index))

df

Out[103]: 

   col1                  col2    aa    bb

0     1                   NaN   NaN   NaN

1     2                   NaN   NaN   NaN

2     3  {'aa': 11, 'bb': 22}  11.0  22.0

3     4  {'aa': 33, 'bb': 44}  33.0  44.0

4     5  {'aa': 55, 'bb': 66}  55.0  66.0


查看完整回答
反對 回復 2022-08-16
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

嘗試:pd.concat([df['col1'], df['col2'].apply(pd.Series)], axis=1)


   col1    aa    bb

0     1   NaN   NaN

1     2   NaN   NaN

2     3  11.0  22.0

3     4  33.0  44.0

4     5  55.0  66.0


查看完整回答
反對 回復 2022-08-16
  • 3 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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