熊猫:如何根据另一列建立索引的列?

丹尼尔·火箭人

我在下面介绍了此数据框。我在下面尝试了一个解决方案,但不确定这是否是一个好的解决方案。

import pandas as pd

def creatingDataFrame():

    raw_data = {'code': [1, 2, 3, 2 , 3, 3],                
                'Region': ['A', 'A', 'C', 'B' , 'A', 'B'],
                'var-A': [2,4,6,4,6,6],
                'var-B': [20, 30, 40 , 50, 10, 20],
                'var-C': [3, 4 , 5, 1, 2, 3]}
    df = pd.DataFrame(raw_data, columns = ['code', 'Region','var-A', 'var-B', 'var-C'])
    return df

if __name__=="__main__":


    df=creatingDataFrame()
    df['var']=np.where(df['Region']=='A',1.0,0.0)*df['var-A']+np.where(df['Region']=='B',1.0,0.0)*df['var-B']+np.where(df['Region']=='C',1.0,0.0)*df['var-C']    

我希望变量var取决于区域“ Region”提供的区域,假设列“ var-A”,“ var-B”或“ var-C”的值。

结果必须是

df['var']
Out[50]: 
0     2.0
1     4.0
2     5.0
3    50.0
4     6.0
5    20.0
Name: var, dtype: float64
BEN_YO

您可以尝试 lookup

df.columns=df.columns.str.split('-').str[-1]
df
Out[255]: 
   code Region  A   B  C
0     1      A  2  20  3
1     2      A  4  30  4
2     3      C  6  40  5
3     2      B  4  50  1
4     3      A  6  10  2
5     3      B  6  20  3
df.lookup(df.index,df.Region)
Out[256]: array([ 2,  4,  5, 50,  6, 20], dtype=int64)

#df['var']=df.lookup(df.index,df.Region)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何根据另一列中的唯一值在列中建立索引

如何根据另一列的条件创建熊猫列?

如何根据条件在熊猫中创建另一列?

根据存储在另一列(熊猫)中的列索引选择列值

如何根据熊猫中另一列中的描述计算一列中的值?

如何根据熊猫中另一列的下限值对一列中的值求和?

熊猫根据索引用另一列替换列值的子集

根据每次出现的另一列特定值在熊猫中添加索引

根据另一列的符号翻转标记熊猫列

熊猫根据另一列的值移动列数据

根据另一列的条件创建熊猫列

根据另一列熊猫的值添加新列

根据另一列更改熊猫列

根据另一列填充熊猫列

如何根据另一列求和?

如何根据另一列的值在熊猫中创建列

如何根据另一列的值过滤熊猫列或行?

如何根据熊猫中另一列中的空值填充列

使用熊猫,如何根据另一列的值分配列中的值?

如何根据另一列中的间隔填充熊猫中其他列的缺失值?

如何根据另一列的值对列进行熊猫分组并获得每组的特定结果?

如何根据熊猫另一列中的条件生成具有值的新列

如何根据另一列中满足的条件在熊猫数据框中添加新列?

熊猫将多索引与另一列相乘

熊猫,根据条件在另一列中搜索结果

根据另一列中的条件填充熊猫

根据另一列值向前填充熊猫

熊猫根据另一列跟踪价格的每月变化

熊猫根据另一列的条件重置 cumsum()