熊猫为列中的每个唯一值遍历数据框

时间:2020-04-12 14:39:54

标签: python pandas loops for-loop historical-db

我正在处理2个csv文件。

在效果文件中:我具有贷款表现的历史数据(即从第1个月到第7个月的贷款110表现,然后从第1个月到第20个月的贷款111表现)。在第一个文件中,我的列如下:A =贷款id,B =表现月份(1到7),C =默认值。对于每个借位,每个月都有1行的业绩。

我正在尝试创建一个循环,让我获得每笔贷款有违约的第一个月,然后将月份和违约金额复制到我的第二个csv文件中,该文件中包含有关每个借贷ID的描述性数据。想法是在第二个文件上添加2列,并为每个借贷编号检索第一个具有默认值的月份。

我正在研究jupyter笔记本,到目前为止,我已经导入了pandas库并读取了性能csv文件。

任何指导将不胜感激。

import pandas as pd
data = pd.read_csv(r'c:\users\guest1\documents\python_example_performance.csv',delimiter=',')
data.head()

1 个答案:

答案 0 :(得分:0)

首先,我没有评论,因为我没有足够的声誉。我需要在这个问题上做更多的澄清。您能显示数据的样子吗?在100、101和1-7或1-20之间,这让我有些困惑。

根据我目前的理解,我将首先从第一个CSV中删除非默认值。 由于您使用的是熊猫,因此可以遍历Loc。 语法通常如下所示。

df = df[df[cols] > 0]

如果它们重复,则保留最后一个月或当前月取决于您的选择。熊猫支持删除重复项,并可以选择保留第一条或最后一条记录。语法通常如下所示。

df = df.drop_duplicates(subset ="Col1", keep = 'last') 

有关更多文档,请参阅:Pandas - Drop Duplicates

最后,您需要基于贷款ID对两个数据框执行联接。语法通常如下所示。

df = pd.merge(df1, df2, how='left', on=['LoanID'])

有关更多文档,请参阅:Pandas - Merge