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

问题描述 投票: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.