python - 用具有该值的列中的值替换列中的值
问题描述
我想将值替换为valcol
列中的值,即值。假设您的 df 看起来像下面这样:
col1 col2 col3 valcol
0 a d g col1
1 b e h col1
2 c f i col2
我想valcol_new
变成这样:
col1 col2 col3 valcol valcol_new
0 a d g col1 a
1 b e h col1 b
2 c f i col2 f
如何做到这一点?
df 用于测试:
df = pd.DataFrame({'col1': ['a', 'b', 'c'], 'col2': ['d', 'e', 'f'], 'col3': ['g', 'h', 'i'], 'valcol': ['col1', 'col1', 'col2']})
解决方案
您可以通过enumerate()
方法和列表理解和loc[]
访问器来做到这一点:
df['valcol']=[df.loc[x,y] for x,y in enumerate(df['valcol'])]
现在,如果您打印 df ,您将获得所需的输出:
col1 col2 col3 valcol
0 a d g a
1 b e h b
2 c f i f
推荐阅读
- javascript - JS过滤日期
- swift - 无法使用 AVVideoCompositionCoreAnimationTool 在视频中显示动画 CALayer
- javascript - 选中复选框时触发功能,但未选中时清除
- c# - 在c#中的文本框上显示单元格值
- wpf - 半透明颜色的动画效果很奇怪
- java - 有没有办法在 Java 语言(非本机)JVM 代理中启用“本机方法前缀”功能?
- python - Python shell 在 urlopen() 上重新启动
- c# - .Net Api 用于创建带有图表的 Word 文档
- javascript - 入门问题,在动画上用文本覆盖 Div
- python - 带有 sklearn 的 ML:KNeighborRegressor 拟合函数卡在大数据库上