为了账号安全,请及时绑定邮箱和手机立即绑定

从其他列派生 DataFrame 列而不编写任何循环

从其他列派生 DataFrame 列而不编写任何循环

慕侠2389804 2021-08-24 18:25:25
我有一个包含两列(动词和出现)的 DataFrame。我能够创建一个新列来确定动词的字符数(即长度):df['length'] = df['verb'].str.len()第二个要求是创建一个包含文本的新列。如果ocurrence等于 1,则写'Unique'; 如果ocurrence小于或等于5,则写'Medium';否则'High'……...这是我迄今为止编写的代码...df['class'] = 'Unique' if df['ocurrence'] == 1 else 'Medium' if df['ocurrence'] <= 5 else 'High'......但它不起作用。
查看完整描述

2 回答

?
狐的传说

TA贡献1804条经验 获得超3个赞

使用pd.cut:


df['class'] = pd.cut(df.occurrence, bins=[0,1,5,np.inf], labels=['Unique','Medium','High'])

例如:


df = pd.DataFrame({'occurrence':np.random.randint(0,10,10)})

>>> df

   occurrence

0           5

1           1

2           6

3           7

4           5

5           7

6           7

7           1

8           2

9           7


df['class'] = pd.cut(df.occurrence, bins=[0,1,5,np.inf], labels=['Unique','Medium','High'])

>>> df

   occurrence   class

0           5  Medium

1           1  Unique

2           6    High

3           7    High

4           5  Medium

5           7    High

6           7    High

7           1  Unique

8           2  Medium

9           7    High


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信