如何在基于目录的数据框中创建动态索引?

问题描述 投票:0回答:1

我有两个不同的数据框。第一个是不同请求类型的目录以及我目前有多少请求。

data = {'Req Type': ['A', 'B', 'C', 'D'],'Req No': [20, 21, 19, 18]} 
df1 = pd.DataFrame(data) 
print(df1)      
       Req Type  Req No 
0       A        20 
1       B        21 
2       C        19 
3       D        18 

另一个是我这个月有多少新请求的数据框。

data2 = {'Req Type': ['A', 'A', 'C', 'B']}
df2 = pd.DataFrame(data2)
print(df2)
    Req Type  
0       A      
1       A     
2       C     
3       B    

我需要在 df2 中创建一个动态索引,它可以检测每种请求类型的最后一个数字是什么并开始求和。示例:A 的最后一个数字是“20”,因此请求类型“A”的索引是“21”,然后是“22”,对于我的所有请求类型也是如此。

       Req Type  Index 
0       A        21 
1       A        22 
2       C        20 
3       B        22
python pandas dataframe indexing
1个回答
0
投票

您可以使用字典并一次性更新它:

import pandas as pd

def get_indices(A, B):
    res, TN = [], dict(zip(A['Req Type'], A['Req No']))
    for t in B['Req Type']:
        TN[t] += 1
        res += [TN[t]]

    B['Index'] = res
    return B


A = pd.DataFrame({'Req Type': ['A', 'B', 'C', 'D'], 'Req No': [20, 21, 19, 18]})
B = pd.DataFrame({'Req Type': ['A', 'A', 'C', 'B']})
print(get_indices(A, B))

打印

  Req Type  Index
0        A     21
1        A     22
2        C     20
3        B     22
© www.soinside.com 2019 - 2024. All rights reserved.