用一列中的值索引熊猫数据框

杰克·M

样本数据:

import pandas as pd
import numpy as np

np.random.seed(0)

df = pd.DataFrame(np.random.randn(10, 3), columns=['A', 'B', 'C'])
df['idx'] = ['A', 'B', 'C', 'D', 'A', 'B', 'C', 'B', 'C', 'D']
print(df)

          A         B         C idx
0  1.764052  0.400157  0.978738   A
1  2.240893  1.867558 -0.977278   B
2  0.950088 -0.151357 -0.103219   C
3  0.410599  0.144044  1.454274   D
4  0.761038  0.121675  0.443863   A
5  0.333674  1.494079 -0.205158   B
6  0.313068 -0.854096 -2.552990   C
7  0.653619  0.864436 -0.742165   B
8  2.269755 -1.454366  0.045759   C
9 -0.187184  1.532779  1.469359   D

我有一个像上面的熊猫数据框。

我需要为每行创建一个新列“值”,如果该列存在“ idx”,则为该列索引,如果不存在则返回“ NaN”。

我的预期输出是:

          A         B         C idx     value
0  1.764052  0.400157  0.978738   A  1.764052
1  2.240893  1.867558 -0.977278   B  1.867558
2  0.950088 -0.151357 -0.103219   C -0.103219
3  0.410599  0.144044  1.454274   D  NaN
4  0.761038  0.121675  0.443863   A  0.761038
5  0.333674  1.494079 -0.205158   B  1.494079
6  0.313068 -0.854096 -2.552990   C -2.552990
7  0.653619  0.864436 -0.742165   B  0.864436
8  2.269755 -1.454366  0.045759   C  0.045759
9 -0.187184  1.532779  1.469359   D  NaN
cs95

使用isin过滤掉无效的列名,然后用DataFrame.lookup,好了,......“查找”你的价值观。

idx = df.loc[df.idx.isin(df.columns), 'idx']
df.loc[idx.index, 'value'] = df.lookup(idx.index, idx)
df

          A         B         C idx     value
0  1.764052  0.400157  0.978738   A  1.764052
1  2.240893  1.867558 -0.977278   B  1.867558
2  0.950088 -0.151357 -0.103219   C -0.103219
3  0.410599  0.144044  1.454274   D       NaN
4  0.761038  0.121675  0.443863   A  0.761038
5  0.333674  1.494079 -0.205158   B  1.494079
6  0.313068 -0.854096 -2.552990   C -2.552990
7  0.653619  0.864436 -0.742165   B  0.864436
8  2.269755 -1.454366  0.045759   C  0.045759
9 -0.187184  1.532779  1.469359   D       NaN

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用熊猫数据框中另一列的值在多列中填充Na

更改熊猫数据框中的一列的值

熊猫:当键是数据框的索引时,从字典中向数据框添加一列

根据熊猫中数据框的另一列的值添加一列

如何调节一列的循环以填充熊猫数据框中的另一列值

根据另一列中的相同值组合熊猫数据框列中的文本值

为另一列中的唯一值的熊猫数据框值赋值

无法摆脱第一列,即熊猫数据框中的索引

快速获取熊猫数据框中每一列的前k个元素的索引的方法

根据另一列中的值将值添加到熊猫数据框的一列中

根据另一列中的最大值为熊猫数据框中的给定子索引创建一个新列

根据熊猫数据框中另一列的最后一个值填充列

使用字典参考另一列值来映射熊猫数据框的一列中的缺失值

给定另一列的值替换熊猫数据框中的值

熊猫数据框:将一列中的值与先前的值进行比较

忽略NaN的变化来计算熊猫中数据框中每一列的值变化

根据一列中的特定值在熊猫数据框中查找时间增量

查看一列中的值是否在熊猫数据框中包含%

从熊猫数据框中另一列中的值创建变量

如何更改熊猫数据框中某个类别的另一列中的值?

用另一列中的值替换数据框中的占位符值

熊猫:返回数据框,其中一列的值大于另一列的值

大熊猫:从另一列修改数据框中的值

确定熊猫数据框中每隔一列的最大值

根据输入比例更新熊猫数据框中的一列值

如何获取熊猫数据框中的上一列值?

用其他列中的值填充我的数据框中的一列

用另一张表中的另一列替换数据框中的值

根据条件在熊猫数据框中创建一列