python-3.x 如何在运行Pandas的df.columns函数时删除u'

0wi1tuuw  于 2023-01-27  发布在  Python
关注(0)|答案(2)|浏览(127)

我有一个如下所示的数据框。
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()})
11dmarpk

11dmarpk1#

"试试这个"

df = df.set_index(['id']).apply(dict, axis=1).reset_index(name='ratings')
df['ratings'] = df['ratings'].apply(lambda x: {float(k[1:]): v for k, v in x.items()})

第一行代码与原始代码相同,但第二行使用apply()函数和lambda函数迭代'ratings'列中的每个字典,对于每个键-值对,它将键从字符串转换为浮点型,并从键的开头删除'u',然后将得到的字典赋回'ratings'列中的相应行。

zqry0prt

zqry0prt2#

u'string'表示Python中的unicode字符串。从Python 3开始,所有字符串都使用default进行unicode编码。因此,您可以放心地忽略该符号。

相关问题