我有一个如下所示的数据框。
DF:
id fcb psg rma
1 4.0 2.9 4.1
2 3.5 4.2 3.5
3 2.5 4.5 4.0
4 4.1 4.6 4.2
我希望在一个专栏中看到所有的评分,所以我运行了下面的代码。
df.set_index(['id']).apply(dict, axis=1).reset_index(name='ratings')
然而,我得到了下面的结果。但是我想从每个字典的所有键中删除字母"u"。
id ratings
1 {u'fcb': 4.0, u'psg': 2.9, u'rma': 4.1}
2 {u'fcb': 3.5, u'psg': 4.2, u'rma': 3.5}
3 {u'fcb': 2.5, u'psg': 4.5, u'rma': 4.0}
4 {u'fcb': 4.1, u'psg': 4.6, u'rma': 4.2}
预期产出:
id ratings
1 {'fcb': 4.0, 'psg': 2.9, 'rma': 4.1}
2 {'fcb': 3.5, 'psg': 4.2, 'rma': 3.5}
3 {'fcb': 2.5, 'psg': 4.5, 'rma': 4.0}
4 {'fcb': 4.1, 'psg': 4.6, 'rma': 4.2}
我尝试下面的代码,以消除每个键领先的unicode。
df['rec_dict'] = df['rec_dict'].apply(lambda x: {str(k[1:]): v for k, v in x.items()})
2条答案
按热度按时间11dmarpk1#
"试试这个"
第一行代码与原始代码相同,但第二行使用apply()函数和lambda函数迭代'ratings'列中的每个字典,对于每个键-值对,它将键从字符串转换为浮点型,并从键的开头删除'u',然后将得到的字典赋回'ratings'列中的相应行。
zqry0prt2#
u'string'
表示Python中的unicode字符串。从Python 3开始,所有字符串都使用default进行unicode编码。因此,您可以放心地忽略该符号。