簡體   English   中英

python panda:在列中查找特定字符串並填充與字符串匹配的列

[英]python panda: find a specific string in a column and fill the column matching the string

我有一個包含幾列的數據框。 其中之一充滿了由 | 分隔的電影“流派”,我將此列拆分為其他幾列,以獲得 X 列,每個列都填充了拆分值。 但是,我需要為每個“流派”設置 1 列,填充 1 或 0,具體取決於列的標題是在名義流派列中還是在拆分列之一中找到。 我的數據框設置如下:

    df = pd.DataFrame({'A': ['drama|Action', 'Drama', 'Action'], 'A_split1': ['Drama', 'Drama', 'Action'],'A_split2': ['Action', 'None', 'None'],'Drama': [0, 0, 0], 'Action': [0, 0, 0], 'Western': [0, 0, 0]},
                  index = ['a1', 'a2', 'a3'])
    df

但是我沒有找到如何檢查標題名稱是否在字符串中以添加 1 或 0。

我認為你需要pop的提取塔與str.get_dummiesjoin到原文:

df = pd.DataFrame({'A': ['Drama|Action', 'Drama', 'Action'], 'B':range(3)},
                  index = ['a1', 'a2', 'a3'])
print (df) 
               A  B
a1  Drama|Action  0
a2         Drama  1
a3        Action  2

df = df.join(df.pop('A').str.get_dummies())
print (df)
    B  Action  Drama
a1  0       1      1
a2  1       0      1
a3  2       1      0

如果想要原始列:

df = df.join(df['A'].str.get_dummies())
print (df)
               A  B  Action  Drama
a1  Drama|Action  0       1      1
a2         Drama  1       0      1
a3        Action  2       1      0

暫無
暫無

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

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