从数据框中提取具有列名的非零数据

时间:2019-06-03 15:24:51

标签: python dataframe

我有一个看起来像的数据框 enter image description here

在这里,我只想提取具有列名的非零值(即1) 所以输出将是: enter image description here

我用列名替换了值1,但是无法删除其他值并更改其结构。

new_df = df.replace(1, pd.Series(df.columns, df.columns))

1 个答案:

答案 0 :(得分:2)

#read the columns
new_df = df.apply(lambda x: x.index[x!=0].tolist(),axis=1)
#maximum number of entries
max_cols=new_df.apply(len).max()
#create a new dataframe and pad the entries for missing values
new_df=pd.DataFrame(new_df.apply(lambda x: x+['']*(max_cols-len(x))).to_dict()).transpose()
#write to csv
new_df.to_csv('new_csv.csv')