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

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

使用重復索引重塑 Pandas 數據框并填充缺失的行

使用重復索引重塑 Pandas 數據框并填充缺失的行

喵喔喔 2022-07-26 16:33:48
我想添加與給定索引對應的缺失行。例如,如果我有:df = pd.DataFrame({"date": ["1", "2", "1", "3"],                   "name": ["bob", "bob", "anne", "anne"],                   "x": [1, 2, 2, 3],                   "y": [2, 4, 5, 5]})我想獲得以下內容:    name    date    x   y    anne    1       2   5    anne    2       NA  NA   <- because date 2 is missing for Anne    anne    3       3   5    bob     1       1   2    bob     2       2   4    bob     3       NA  NA   <- because date 3 is missing for Bob我用 pivot_table、pivot 嘗試了很多東西,但到目前為止還想不通。df.pivot_table(index = ["name", "date"], values = ['x','y'], fill_value=0).reset_index()沒有填充缺失的行。
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

DataFrame.set_index 與DataFrame.unstack,DataFrame.stack和一起使用DataFrame.reset_index

df = df.set_index(["name", "date"]).unstack().stack(dropna=False).reset_index()

print (df)

   name date    x    y

0  anne    1  2.0  5.0

1  anne    2  NaN  NaN

2  anne    3  3.0  5.0

3   bob    1  1.0  2.0

4   bob    2  2.0  4.0

5   bob    3  NaN  NaN

您的解決方案是可能的相同方式:


df = df.pivot_table(index = ["name", "date"], values = ['x','y'], fill_value=0).unstack().stack(dropna=False).reset_index()

print (df)

   name date    x    y

0  anne    1  2.0  5.0

1  anne    2  NaN  NaN

2  anne    3  3.0  5.0

3   bob    1  1.0  2.0

4   bob    2  2.0  4.0

5   bob    3  NaN  NaN


查看完整回答
反對 回復 2022-07-26
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

另一種方法Multiindex.from_productreindex

idx = pd.MultiIndex.from_product((df['date'].unique(),

                                 df['name'].unique()),names=['date','name'])

df.set_index(['date','name']).reindex(idx).sort_index(level=1).reset_index()

  date  name    x    y

0    1  anne  2.0  5.0

1    2  anne  NaN  NaN

2    3  anne  3.0  5.0

3    1   bob  1.0  2.0

4    2   bob  2.0  4.0

5    3   bob  NaN  NaN


查看完整回答
反對 回復 2022-07-26
  • 2 回答
  • 0 關注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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