![](/img/trans.png)
[英]Convert all columns in a Pandas DF to separate lists and assign it a name same as column name
[英]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.