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

将列添加回DataFrame

将列添加回DataFrame

临摹微笑 2021-04-02 14:15:34
我正在尝试获取的概率testers_time并将其加回到df。我有以下几点:dict = {'id': ['a','b','c','d'], 'testers_time': [10, 30, 15, None], 'stage_1_to_2_time': [30, None, 30, None], 'activated_time' : [40, None, 45, None],'stage_2_to_3_time' : [30, None, None, None],'engaged_time' : [70, None, None, None]} df = pd.DataFrame(dict, columns=['id', 'testers_time', 'stage_1_to_2_time', 'activated_time', 'stage_2_to_3_time', 'engaged_time'])unique, counts = np.unique(df['testers_time'].dropna().sort_values() , return_counts=True) print(pd.DataFrame(counts/float(len(counts))))预期输出(最后一列):  id  testers_time  stage_1_to_2_time  activated_time  stage_2_to_3_time  \0  a          10.0               30.0            40.0               30.0   1  b          30.0                NaN             NaN                NaN   2  c          15.0               30.0            45.0                NaN   3  d           NaN                NaN             NaN                NaN      engaged_time  prob0          70.0  0.3333331           NaN  0.3333332           NaN  0.3333333           NaN  NaN 但是我一直在坚持如何将其添加回df。你能帮忙吗?
查看完整描述

1 回答

?
梵蒂冈之花

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

您可能想要map一些标准化的value_counts输出,像这样。


df['prob'] = df['testers_time'].map(

    df.testers_time.value_counts(normalize=True))

df

  id  testers_time  stage_1_to_2_time  activated_time  stage_2_to_3_time  engaged_time      prob

0  a          10.0               30.0            40.0               30.0          70.0  0.333333

1  b          30.0                NaN             NaN                NaN           NaN  0.333333

2  c          15.0               30.0            45.0                NaN           NaN  0.333333

3  d           NaN                NaN             NaN                NaN           NaN       NaN



查看完整回答
反对 回复 2021-04-13
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号