为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容3067478 2023-02-07 16:31:43
我正在使用 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')我对多个数据框执行此操作,这使我可以轻松地比较它们。结果很整洁,看起来像这样:
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

stack那你可以试试str.get_dummies


s=df.stack().loc[lambda x : x!=0].astype(str).str.get_dummies().sum(level=0).add_prefix('Has')

   Has1  Has2  Has3  Has4  Has5

0     1     1     0     1     0

1     1     1     1     0     1

2     0     1     1     0     0


查看完整回答
反对 回复 2023-02-07
?
GCT1015

TA贡献1827条经验 获得超4个赞

咱们试试吧:


(df.stack().groupby(level=0)

   .value_counts()

   .unstack(fill_value=0)

   [range(1,6)]

   .add_prefix('has')

)

输出:


   has1  has2  has3  has4  has5

0     1     1     0     1     0

1     1     1     1     0     1

2     0     1     1     0     0


查看完整回答
反对 回复 2023-02-07
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

这是另一种使用方式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  has5

index                              

0         1     1     0     1     0

1         1     1     1     0     1

2         0     1     1     0     0


查看完整回答
反对 回复 2023-02-07
  • 3 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信