如何在Pandas中获得数据帧中的确切行号?

2024-06-01 01:32:12 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用Panda获得数据帧中的确切行号,该数据帧在特定列中包含特定值?例如,我有以下数据帧:

    Date       Amount    Merchant
0   3/4/2020   2367.25   Apple
1   3/5/2020   625.09    Best Buy
2   3/6/2020   4.99      Pandora
3   3/7/2020   68.26     Amazon

到目前为止,我使用的代码遍历了“商户”列,并在字典中查找,其中每个商户都是键,值是一个包含总账代码和总账描述的列表

我的问题是,根据购买的物品,某些商家可能有2个总账代码,通常超过1000美元的物品将被分配一个不同的总账代码,而不是通常分配给1000美元以下的物品

当程序迭代时,它将到达具有2个可能GL代码的商户,所有特殊商户都在名为SpecialMerchants的列表中。我所拥有的只是csv文件中的商户名称,如何使用该名称定位该商户所在的行号,并将其与金额列匹配

for i in df['Merchant']:
    for key in DicOfGLs:
        if key in i:
            for SpecialKey in SpecialMerchants:
                if SpecialKey == key:
                    print(df.loc[i])
                    if ExpenseDF['Amount'] > 1000.00:
                        df[key] = pd.Series([df[key][1][0]])
                        df[key] = pd.Series([df[key][1][1]])
                    else:
                        df[key] = pd.Series([df[key][0][0]])
                        df[key] = pd.Series([df[key][0][1]])
                else:
                    df['GL Code'] = pd.Series([df[key][0]])
                    df['GL Description'] = pd.Series([df[key][1]])

以下是一些德国劳埃德船级社代码和说明以及特殊商户列表的片段

DicOfGLs = {
    'BESTBUY': {0: ['760.6500.00', 'IT SUPPLIES'], 1: ['760.7110.00', 'IT COMPUTER EXPENSE']},
    'APPLE': {0: ['760.6500.00', 'IT SUPPLIES'], 1: ['760.7110.00', 'IT COMPUTER EXPENSE']},
    'MICROSOFT': ['760.7100.00', 'SOFTWARE']
}

SpecialMerchants = [
    'BESTBUY',
    'APPLE',
    'APPLE STORE',
    'MICROCENTER',
    'Amazon.com',
    'AMZN MKTP US*'
    ]

Tags: 数据key代码indf列表forit
1条回答
网友
1楼 · 发布于 2024-06-01 01:32:12

查找商户数据框的索引。可以使用索引。下面是一个例子。文件的内容与您在问题中给出的内容相同

file = pd.read_csv("Documents\check.csv")

SpecialMerchants = [
'BESTBUY',
'APPLE',
'APPLE STORE',
'MICROCENTER',
'Amazon.com',
'AMZN MKTP US*'
]

for i in file.Merchant:
if i.upper() in SpecialMerchants:
   print(file[file.Merchant == i].index[0])


Output: 0

索引将返回一个元组,给出该商户所在行的索引以及索引的数据类型。因此,为了只获取索引值,我添加了索引[0]

 file[file.Merchant == "Apple"].index
 Output:Int64Index([0], dtype='int64')

相关问题 更多 >