重复元素的Python绘图

2024-05-19 04:19:02 发布

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

我有一个包含重复项的csv文件。重复这些项目的原因是,每一行都表示一个特定的贷款,该贷款是在一段时间内支付的。例如,ID=156的贷款已分5次支付。因此,贷款信息在每一行重复,只是付款金额和付款日期不同。我想做一个已支付贷款的条形图,但通过计算已支付贷款的行数来计算已支付贷款是不起作用的,因为它计算重复贷款。我在想我该怎么解决这个问题。你知道吗

这是我的密码:

loans[loans["status"]=="paid"] ["location.country"].value_counts().plot(kind="bar", fontsize=7)

这段代码试图描绘出支付贷款的国家,但正如我所说的,这是不正确的,因为loans["status"]=="paid"可能适用于多行重复的贷款,因此loans[loans["status"]=="paid"] ["location.country"].value_counts()是错误的计数。你知道吗

以下是数据外观的示例:

ID  status paymentAmount   paymentProcessDate     Country
156 paid     $400            2/12/2009            CountryA
156 paid     $123            2/11/2010            CountryA
156 paid     $2000           2/09/2011            CountryA
134 unpaid    Nan            2/05/2013            CountryB
134 unpaid    Nan            2/07/2013            CountryB

Tags: 文件csvidvaluestatuslocationnancountry
1条回答
网友
1楼 · 发布于 2024-05-19 04:19:02

这里有一种方法可以过滤掉已经支付的ID。你知道吗

import pandas as pd
from io import StringIO

df = pd.DataFrame.from_csv(StringIO('''ID  status paymentAmount   paymentProcessDate     Country
156 paid     $400            2/12/2009            CountryA
156 paid     $123            2/11/2010            CountryA
156 paid     $2000           2/09/2011            CountryA
134 unpaid    Nan            2/05/2013            CountryB
134 unpaid    Nan            2/07/2013            CountryB'''), sep=r' +')

paid_ids = df[df.status=='paid'].ID.drop_duplicates()

unpaid = df[~df.ID.isin(paid_ids)]

unpaid.Country.value_counts().plot(kind='bar')

相关问题 更多 >

    热门问题