首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理Pandas Dataframe中保存为string的“年龄桶”?

如何处理Pandas Dataframe中保存为string的“年龄桶”?
EN

Stack Overflow用户
提问于 2019-10-04 08:46:34
回答 1查看 126关注 0票数 0

我从关于乐高的.csv kaggle下载了一个数据集。有这样一个“时代”专栏:

代码语言:javascript
运行
复制
df['Ages'].unique()
array(['6-12', '12+', '7-12', '10+', '5-12', '8-12', '4-7', '4-99', '4+',
   '9-12', '16+', '14+', '9-14', '7-14', '8-14', '6+', '2-5', '1½-3',
   '1½-5', '9+', '5-8', '10-21', '8+', '6-14', '5+', '10-16', '10-14',
   '11-16', '12-16', '9-16', '7+'], dtype=object)

这些类别是推荐的使用和玩乐高游戏的ages。我打算用这些垃圾箱做一些统计分析。例如,我想检查这些建议年龄的平均值。但是,由于它们的类型都是字符串

代码语言:javascript
运行
复制
type(lego_dataset.loc[0]['Ages'])
str

我不知道如何处理这些数据。

我已经检查过How to categorize a range of values in Pandas DataFrame了,但想象一下有100个独特的垃圾箱。每个类别都有100个标签,这是不合理的。应该有更好的办法。

EN

回答 1

Stack Overflow用户

发布于 2019-10-04 09:05:28

不完全确定您正在寻找什么输出。看看下面的代码和输出是否对您有帮助。

代码语言:javascript
运行
复制
df['Lage'] = df['Ages'].str.split('[-+]').str[0]
df['Uage'] = df['Ages'].str.split('[-+]').str[-1]

代码语言:javascript
运行
复制
df['Lage'] = df['Ages'].str.extract('(\d+)', expand=True) #you don't get the fractions for row 17 & 18
df['Uage'] = df['Ages'].str.split('[-+]').str[-1]

输入

代码语言:javascript
运行
复制
    Ages
0   6-12
1   12+
2   7-12
3   10+
4   5-12
5   8-12
6   4-7
7   4-99
8   4+
9   9-12
10  16+
11  14+
12  9-14
13  7-14
14  8-14
15  6+
16  2-5
17  1½-3
18  1½-5
19  9+
20  5-8
21  10-21
22  8+
23  6-14
24  5+
25  10-16
26  10-14
27  11-16
28  12-16
29  9-16
30  7+

Output1

代码语言:javascript
运行
复制
Ages    Lage    Uage
0   6-12    6   12
1   12+     12  
2   7-12    7   12
3   10+     10  
4   5-12    5   12
5   8-12    8   12
6   4-7     4   7
7   4-99    4   99
8   4+  4   
9   9-12    9   12
10  16+     16  
11  14+     14  
12  9-14    9   14
13  7-14    7   14
14  8-14    8   14
15  6+  6   
16  2-5     2   5
17  1½-3    1½  3
18  1½-5    1½  5
19  9+  9   
20  5-8     5   8
21  10-21   10  21
22  8+  8   
23  6-14    6   14
24  5+  5   
25  10-16   10  16
26  10-14   10  14
27  11-16   11  16
28  12-16   12  16
29  9-16    9   16
30  7+  7   

Output2

代码语言:javascript
运行
复制
Ages    Lage    Uage
0   6-12    6   12
1   12+     12  
2   7-12    7   12
3   10+     10  
4   5-12    5   12
5   8-12    8   12
6   4-7     4   7
7   4-99    4   99
8   4+  4   
9   9-12    9   12
10  16+     16  
11  14+     14  
12  9-14    9   14
13  7-14    7   14
14  8-14    8   14
15  6+  6   
16  2-5     2   5
17  1½-3    1   3
18  1½-5    1   5
19  9+  9   
20  5-8     5   8
21  10-21   10  21
22  8+  8   
23  6-14    6   14
24  5+  5   
25  10-16   10  16
26  10-14   10  14
27  11-16   11  16
28  12-16   12  16
29  9-16    9   16
30  7+  7   
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58232890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档