将指标数字转换为二进制值

我正在使用 Plotly 的散点图来可视化多个数据集。


这是我的代码的一部分。下面,我创建了 scatterpolar 实例:


go.Scatterpolar(

    r=[dataset_dataframe['word_count'].median(),

       dataset_dataframe['char_count'].median(),

       dataset_dataframe['capitals'].median(),

       dataset_dataframe['num_exclamation_marks'].median(),

       dataset_dataframe['num_punctuation'].median()],


    name=dataset_name,

    theta=['No. of Words', 'No. of Characters', 'No. of Capitals', 'No. of Exclamation Marks', 'No. of Punctuations'],

    fill='toself',

    line=dict(color='brown'),

    subplot=subplot_name),

)

在这里我把它放在一个布局中:


fig.update_layout(

    polar=dict(

    radialaxis=dict(visible=True, )),

    title='Dataset Statistics')

我对多个数据框执行此操作,这使我可以轻松地比较它们。结果很整洁,看起来像这样:


慕容3067478
浏览 105回答 3
3回答

泛舟湖上清波郎朗

stack那你可以试试str.get_dummiess=df.stack().loc[lambda x : x!=0].astype(str).str.get_dummies().sum(level=0).add_prefix('Has')   Has1  Has2  Has3  Has4  Has50     1     1     0     1     01     1     1     1     0     12     0     1     1     0     0

GCT1015

咱们试试吧:(df.stack().groupby(level=0)   .value_counts()   .unstack(fill_value=0)   [range(1,6)]   .add_prefix('has'))输出:   has1  has2  has3  has4  has50     1     1     0     1     01     1     1     1     0     12     0     1     1     0     0

慕雪6442864

这是另一种使用方式pd.crosstab:df_out = df.reset_index().melt('index')df_out = pd.crosstab(df_out['index'], df_out['value']).drop(0, axis=1).add_prefix('has')输出:value  has1  has2  has3  has4  has5index                              0         1     1     0     1     01         1     1     1     0     12         0     1     1     0     0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python