futui 发表于 2023-5-6 18:46:17

数据帧的某列是五角星,能统计它的个数转化为数字吗?请大师帮忙,谢谢

数据帧的某列是五角星,能统计它的个数,而转化为数字吗?请大师帮忙,谢谢
公司评级
★★★★
★★★★
★★★★
★★★★
★★★
★★★★★
★★★★
★★★★

isdkz 发表于 2023-5-6 18:47:51

当然可以。我假设您使用的是Python和pandas库。这里有一个简单的方法来解决您的问题:

1. 首先,将评级数据存储为一个列表。
2. 然后,将此列表转换为一个pandas数据帧。
3. 接着,使用apply函数将星级转换为数字。

以下是实现这一过程的代码:

import pandas as pd

# 存储评级数据
ratings = ['★★★★', '★★★★', '★★★★', '★★★★', '★★★', '★★★★★', '★★★★', '★★★★']

# 将列表转换为数据帧
df = pd.DataFrame(ratings, columns=['公司评级'])

# 定义一个函数将星级转换为数字
def stars_to_number(rating):
    return len(rating)

# 使用apply函数将星级转换为数字
df['公司评级'] = df['公司评级'].apply(stars_to_number)

# 统计各星级的个数
count = df['公司评级'].value_counts()

print(df)
print(count)


执行这段代码后,您将得到以下结果:

   公司评级
0      4
1      4
2      4
3      4
4      3
5      5
6      4
7      4

4    6
5    1
3    1
Name: 公司评级, dtype: int64


这将显示一个新的数据帧,其中列出了原始星级的数字表示,以及每个星级的个数。

歌者文明清理员 发表于 2023-5-6 18:49:46

ratings = '''★★★★
★★★★
★★★★
★★★★
★★★
★★★★★
★★★★
★★★★'''.splitlines()
res = []
for line in lines:
    res.append(line.count('★'))
for re in res:
    print(re)
页: [1]
查看完整版本: 数据帧的某列是五角星,能统计它的个数转化为数字吗?请大师帮忙,谢谢