我有一个数据帧和一个节点列表,如下所示。你知道吗
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]]
我想将另一列作为level
添加到数据帧中,其中
high
表示节点的值高于0.8
med
表示节点的值在0.8-0.6
之间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
我目前正在使用下面的代码检查节点是否在列表中(它返回一个布尔值0
和1
)。你知道吗
df['node'].isin(nodes).astype(int)
然而,我不知道我如何才能如果条件,将数据划分为类别。你知道吗
如有需要,我很乐意提供详细资料。你知道吗
首先将列表转换为数据帧
然后应用^{}
使用
df.loc
并应用条件然后放下
node_values
使用^{} 映射list的值,使用^{} 映射值的条件赋值:
注意如果df中的字符串有
"
,则使用df=df.applymap(lambda x: x.replace('"',''))
替换它们相关问题 更多 >
编程相关推荐