簡體   English   中英

將 Pandas df 單元格轉換為列名

[英]Convert pandas df cells to say column name

我有一個這樣的 df:

0   1   2   3   4   5   
abc 0   1   0   0   1
bcd 0   0   1   0   0   
def 0   0   0   1   0

如果單元格中有 1,如何將數據框單元格轉換為列名? 看起來像這樣:

0   1   2   3   4   5   
abc 0   2   0   0   5
bcd 0   0   3   0   0   
def 0   0   0   4   0

讓我們試試

df.loc[:,'1':] = df.loc[:,'1':]  * df.columns[1:].astype(int)
df
Out[468]: 
     0  1  2  3  4  5
0  abc  0  2  0  0  5
1  bcd  0  0  3  0  0
2  def  0  0  0  4  0

我建議您簡單地為每一列執行邏輯,其中給定列中的值為1 ,將該值設置為列名

for col in df.columns:
    df.loc[df[col] == 1, col] = col

我們可以在整個數據幀上使用np.where

values = np.where(df.eq(1), df.columns, df)
df = pd.DataFrame(values, columns=df.columns)

     0  1  2  3  4  5
0  abc  0  2  0  0  5
1  bcd  0  0  3  0  0
2  def  0  0  0  4  0

暫無
暫無

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

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