作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 pandas 数据框和一个节点列表,如下所示。
node title description
0 "node1" "nn nn." "nnnn nnnn"
1 "node2" "mm mm." "mmmm mmmm"
2 "node3" "ll ll." "llll llll"
3 "node4" "jj jj." "jjjj jjjj"
nodes = [["node4", 0.9], ["node2", 1.0], ["node3", 0.8]]
我想在数据框中添加另一列作为级别
,其中
high
表示该节点的值高于0.8
med
表示节点的值在0.8-0.6
之间</li>low
表示该节点的值低于0.6
N/A
表示该节点不在 nodes
列表中。所以我的输出应如下所示。
node title description level
0 "node1" "nn nn." "nnnn nnnn" N/A
1 "node2" "mm mm." "mmmm mmmm" high
2 "node3" "ll ll." "llll llll" med
3 "node4" "jj jj." "jjjj jjjj" high
我当前正在使用以下代码来检查节点是否在列表中(返回 bool 值 0
和 1
)。
df['node'].isin(nodes).astype(int)
但是,我不确定如何根据条件将数据分类。
如果需要,我很乐意提供矿石详细信息。
最佳答案
使用map
映射 list 和 np.select
的值对于值的条件分配:
s=df.node.map(dict(nodes))
df['level']=np.select([s.lt(.6),s.ge(0.6)&s.le(.8),s.gt(0.8)],['low','med','high'],'N/A')
print(df)
<小时/>
node title description level
0 node1 nn nn. nnnn nnnn N/A
1 node2 mm mm. mmmm mmmm high
2 node3 ll ll. llll llll med
3 node4 jj jj. jjjj jjjj high
请注意,如果 df 中的字符串具有 "
,请使用 df=df.applymap(lambda x: x.replace('"','')) 替换它们
关于python - 如何在 python 中向 pandas 数据框添加多个标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57195340/
我是一名优秀的程序员,十分优秀!