微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python中唯一的二进制字符串

我有一个类似于这个表的xlsx文件

name                 place               link 
terry mike           12<longbeach>       http://www.google.com/xyz
jessica mike         12<longbeach>       http://www.google.com/abc
amanda albert        189<washington>     http://www.amazone.com/cali
terry mike           189<longbeach>      http://www.google.com/nnn

我在python中使用Pandas作为数据框导入,并且能够使用以下方法计算每个列的唯一字符串:

len(df.Name.unique())

所以对于名字我得到3是正确的:特里迈克,杰西卡迈克,阿曼达艾伯特

问题如何使用pandas dataframe将这3个cloumns转换为二进制唯一字符串,以便Name列输出如下:

Name    place   link
001     001     001
010     001     010
011     010     011
001     011     100

所以我知道每个单元格是唯一的,我知道每个列有多少不同的字符串,len(df.Name.unique())在这种情况下,名称为3,其中3为3,链接为4

有没有一种简单的方法来做大熊猫

谢谢.

解决方法:

factors, idx = pd.factorize(df.name)
width = int(np.log2(factors.max()) // 1 + 1)

pd.Series(factors, df.index).apply(np.binary_repr, width=width)

0    00
1    01
2    10
3    00
dtype: object

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐