我有一个包含两列(动词和出现)的 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
添加回答
举报
0/150
提交
取消