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

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

替換 Pandas 數據框中的值

替換 Pandas 數據框中的值

蕭十郎 2024-01-04 10:41:06
我想編輯 Pandas 數據框,您可以從這里獲取數據集。 樣本數據集正如您所看到的,每個“區域”都有一些“類別”,每個“類別”都有不同的“價格”。我想統一每個“區域”的“類別”,“類別”的值應該是每個“區域”的底部。換句話說,“category”的某些值將發生如下變化。之前:區域:A,類別:1,價格:500之后:區域:A,類別:2,價格:500圖像我知道可以通過數據透視表編輯此數據框,如下所示。但在這種情況下,我無法統一并顯示“類別”的值。pd.pivot_table(df, values="price", index=["area",], aggfunc='sum')如果您提供統一類別值的想法,我將不勝感激。
查看完整描述

1 回答

?
慕村9548890

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

您可以嘗試這個,盡管它可能不是最好的選擇。


使用您提到的代碼后:


df_new = pd.pivot_table(df, values="price", index=["area",], aggfunc='sum')

我創建了一個函數來查找每個區域的最后一個類別(其中 df 是原始 DataFrame):


    def find_category(cat, list_categories):

        list_categories.append(df[df['area'] == cat].iloc[-1].category)

然后使用 for 循環搜索每個區域的最后一個類別并將其添加到新的類別列中。然后,如果需要,您可以對列重新排序:


list_categories = [] 


for area in df_new.index:

    find_category(area, list_categories)


df_new['category'] = list_categories

df_new = df_new[['category','price']]

輸出將是:


     category   price

area        

A    2          900

B    1          350

C    4          800

D    1          500


查看完整回答
反對 回復 2024-01-04
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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