簡體   English   中英

如何使用其他數據框列的值轉換數據框的列值

[英]How to transform a column value of a dataframe with values of another dataframe columns

如何在orig_diff中添加列“ main_category”,該列將指示子類別屬於哪個主要類別。 例如,值“電影”的orig_df必須將“ main_category”作為“娛樂”,將“ Maths”作為“教育”。

import pandas as pd
import numpy as np

orig_df = pd.DataFrame({"sub_cat" : ["Movie", "Science", "Maths", "Music", "Songs", "Dance", "English", "Maths", "Songs"], "Student": ["Stud1", "Stud2", "Stud3", "Stud4", "Stud5", "Stud6", "Stud7", "Sud8", "Stud9"]})
sub_df = pd.DataFrame({"Education": [0,1,1,0,0,0,1], "Entertainment": [1,0,0,1,1,1,0]}, index=["Movie", "Science", "Maths", "Music", "Songs", "Dance", "English"])
print(orig_df)
print(sub_df)

一種方法是通過迭代行從sub_df創建字典。

然后使用字典作為orig_df['sub_cat']上的地圖:

d = {idx: next(k for k in sub_df if row[k]==1)
     for idx, row in sub_df.iterrows()}

orig_df['main_category'] = orig_df['sub_cat'].map(d)

print(orig_df)

  Student  sub_cat  main_category
0   Stud1    Movie  Entertainment
1   Stud2  Science      Education
2   Stud3    Maths      Education
3   Stud4    Music  Entertainment
4   Stud5    Songs  Entertainment
5   Stud6    Dance  Entertainment
6   Stud7  English      Education
7    Sud8    Maths      Education
8   Stud9    Songs  Entertainment

請注意,這假定每個sub_cat僅映射到“教育”或“娛樂”之一。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM