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

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

Pandas:如何將數據添加到 MultiIndex 空 DataFrame?

Pandas:如何將數據添加到 MultiIndex 空 DataFrame?

慕標琳琳 2021-07-08 18:38:03
我想使用 MultiIndex DataFrame 輕松選擇 DataFrame 的部分。我創建了一個空的 DataFrame 如下:mi = mindex = {'input':['a','b','c'],'optim':['pareto','alive']}mi = pd.MultiIndex.from_tuples([(c,k) for c in mi.keys() for k in mi[c]])mc = pd.MultiIndex(names=['Generation','Individual'],labels=[[],[]],levels=[[],[]])population = pd.DataFrame(index=mi,columns=mc)這似乎很好。但是,我不知道如何插入單個數據來開始填充我的 DataFrame。我嘗試了以下方法:population.loc[('optim','pareto'),(0,0)]=True我試圖定義一個新的列雙索引 (0,0) 導致NotImplementedError. 我也試過 (0,1),它給出了一個ValueError.我也試過沒有列索引:population.loc[('optim','pareto')]=True哪個沒有錯誤......但DataFrame也沒有變化......有幫助嗎?提前致謝。編輯 為了澄清我的問題,一旦填充,我的 DataFrame 應如下所示:Generation     1               2Individual     1    2    3     4    5     6input       a  1    1    2     ...            b  1    2    2     ...            c  1    1    2     ...optim  pareto  True True False ...        alive  True True False ...編輯 2 我發現如果我在 DataFrame 創建時定義我的第一列,我正在做的工作。特別是:mc = pd.MultiIndex.from_tuples([(0,0)])我得到了第一列nan,我可以根據需要添加數據(也適用于新列):population.loc[('optim','pareto'),(0,1)]=True我仍然不知道我的第一個定義有什么問題......
查看完整描述

1 回答

?
幕布斯6054654

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

即使我不知道為什么我的初始定義是錯誤的,以下內容也按預期工作:


mi = {'input':['a','b','c'],'optim':['pareto','alive']}

mi = pd.MultiIndex.from_tuples([(c,k) for c in mi.keys() for k in mi[c]])

mc = pd.MultiIndex.from_tuples([(0,0)],names=['Generation','Individual'])

population = pd.DataFrame(index=mi,columns=mc)

看起來解決方案是在創建 DataFrame 時初始化列(此處為 (0,0) 列)。然后創建的 DataFrame 是:


Generation      0

Individual      0

input a       NaN

      b       NaN

      c       NaN

optim pareto  NaN

      alive   NaN

然后可以填充將值添加到當前列或新列/行。


查看完整回答
反對 回復 2021-07-13
  • 1 回答
  • 0 關注
  • 455 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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