[英]Fill in empty value in a dataframe column with the same value if it already exists in another row
因此,我只是在嘗試一些Python並通過為我正在玩的游戲提供一些指南來處理pandas數據框。
我制作了一個電子表格,其中列出了游戲中所有的英雄以及他們當前最高等級的裝備名稱。 許多英雄使用相同的裝備。 現在,我想在電子表格中添加一列,以添加所有設備的統計信息。 我手動輸入了其中一些統計信息,我希望能夠填寫重復項的統計信息。
我導出了我的csv並將其加載到數據幀中。 這是我的數據框看起來的一個小例子。
Hero Item Stats
1 Item 1 10 HP, 10 Damage
1 Item 2 10 Armor, 10 Tenacity
1 Item 3 10% Healing, 10 Armor
1 Item 3
2 Item 4 10 Skill Power
2 Item 5 10 HP, 10 Skill Power
2 Item 3
2 Item 1
3 Item 1
3 Item 4
3 Item 5
3 Item 2
4 Item 6 5 Crit
4 Item 1
4 Item 4
4 Item 7 25 Skill Power
每個英雄都有4個物品欄位。 在此代碼段中,有7個獨特的項目。 一些物品可以由一個英雄裝備一次以上,而某些物品可以由一個以上英雄裝備。
因此,我想獲取我已經預先填充的統計信息,並填寫剩余的空白統計信息。 這樣它將看起來像這樣:
Hero Item Stats
1 Item 1 10 HP, 10 Damage
1 Item 2 10 Armor, 10 Tenacity
1 Item 3 10% Healing, 10 Armor
1 Item 3 10% Healing, 10 Armor
2 Item 4 10 Skill Power
2 Item 5 10 HP, 10 Skill Power
2 Item 3 10% Healing, 10 Armor
2 Item 1 10 HP, 10 Damage
3 Item 1 10 HP, 10 Damage
3 Item 4 10 Skill Power
3 Item 5 10 HP, 10 Skill Power
3 Item 2 10 Armor, 10 Tenacity
4 Item 6 5 Crit
4 Item 1 10 HP, 10 Damage
4 Item 4 10 Skill Power
4 Item 7 25 Skill Power
我用字典嘗試了一些東西,但是遇到了這個錯誤:“系列”對象是可變的,因此不能進行哈希處理。 我還在另一個線程中讀到,遍歷熊貓數據幀不是很有效嗎?
所以我只是想知道你們將如何解決這個任務。 我只是希望能夠填寫指南,而無需一遍又一遍地手動復制和粘貼我的統計信息。 謝謝!
嘗試此操作,創建一系列帶有統計信息的項目,然后使用map
獲取所有項目的統計信息:
mapper = df[df.Stats.notnull()].set_index('Item')['Stats']
df['Stats'] = df['Item'].map(mapper)
print(df)
輸出:
Hero Item Stats
0 1 Item 1 10 HP, 10 Damage
1 1 Item 2 10 Armor, 10 Tenacity
2 1 Item 3 10% Healing, 10 Armor
3 1 Item 3 10% Healing, 10 Armor
4 2 Item 4 10 Skill Power
5 2 Item 5 10 HP, 10 Skill Power
6 2 Item 3 10% Healing, 10 Armor
7 2 Item 1 10 HP, 10 Damage
8 3 Item 1 10 HP, 10 Damage
9 3 Item 4 10 Skill Power
10 3 Item 5 10 HP, 10 Skill Power
11 3 Item 2 10 Armor, 10 Tenacity
12 4 Item 6 5 Crit
13 4 Item 1 10 HP, 10 Damage
14 4 Item 4 10 Skill Power
15 4 Item 7 25 Skill Power
您可以按項目和Fillna分組
df['Stats'] = df.groupby('Item').Stats.ffill().bfill()
Hero Item Stats
0 1 Item 1 10 HP, 10 Damage
1 1 Item 2 10 Armor, 10 Tenacity
2 1 Item 3 10% Healing, 10 Armor
3 1 Item 3 10% Healing, 10 Armor
4 2 Item 4 10 Skill Power
5 2 Item 5 10 HP, 10 Skill Power
6 2 Item 3 10% Healing, 10 Armor
7 2 Item 1 10 HP, 10 Damage
8 3 Item 1 10 HP, 10 Damage
9 3 Item 4 10 Skill Power
10 3 Item 5 10 HP, 10 Skill Power
11 3 Item 2 10 Armor, 10 Tenacity
12 4 Item 6 5 Crit
13 4 Item 1 10 HP, 10 Damage
14 4 Item 4 10 Skill Power
15 4 Item 7 25 Skill Power
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.