用熊猫创建索引

时间:2019-01-11 15:38:24

标签: python pandas dataframe

假设我具有以下数据框:

import pandas as pd
df = pd.DataFrame({'return':[10, 28, 32, 50, 25]})

我想在新列中将25(最后一个元素)设置为100,然后向后进行50 * 100/25 = 200、32 * 100/25 = 32 * 200/50 = 128 ..等

   return index
0      25  
1      28   
2      32   128
3      50   200
4      25   100

是否有任何一种方法(最好是一行)做到这一点。谢谢!

df['index']=.... ???

3 个答案:

答案 0 :(得分:2)

您可以使用iat提取系列的最后一个值:

df['index'] = df['return'] * 100 / df['return'].iat[-1]

print(df)

   return  index
0      10   40.0
1      28  112.0
2      32  128.0
3      50  200.0
4      25  100.0

答案 1 :(得分:1)

是的,一个行是可能的。只需使用df['return'].iloc[-1]来获得return列的最后一个值,然后像下面这样简单地做

import pandas as pd
df = pd.DataFrame({'return':[10, 28, 32, 50, 25]})
df['index'] = (df['return'] * 100  / df['return'].iloc[-1]).astype(int)
print(df)

输出:

       return  index
0      10     40
1      28    112
2      32    128
3      50    200
4      25    100

答案 2 :(得分:0)

也许是这样吗?

import pandas as pd
df = pd.DataFrame({'return':[10, 28, 32, 50, 25]})

last = df["return"].iloc[-1] 
df['index'] = df['return'].apply(lambda x: x*(100/last))

df

它给出:

    return  index
0   10  40.0
1   28  112.0
2   32  128.0
3   50  200.0
4   25  100.0
相关问题