首页 > 解决方案 > 使用 Python 从分类列中提取特定值

问题描述

以下是包含银行客户交易数据的示例表。txn_description我需要创建一个单独的列作为从列中获取数据的客户的年薪。

Customer_ID txn_description Amount Type
01           POS            345    Dr
02           SALARY         2000   Cr
03           INTER BANK     148    Dr
04           SALARY         1500   Cr
05           NEFT           289    Dr
06           SALARY         1800   Cr
01           NEFT           40     Dr
02           SALARY         2000   Cr
04           POS            69     Dr
04           SALARY         1500   Cr
06           SALARY         1800   Cr

注:交易数据为三个月。因此,工资在此表中三次记入特定客户的帐户,为期三个月。

(Dr = 借方交易,Cr = 贷方交易)

标签: pythonpandasdata-sciencedata-analysis

解决方案


你可以试试这个

df= df[df["txn_description"]=="SALARY"]
df["Annual"] = df["Amount"]*12

输出/输出:

   Customer_ID txn_description  Amount  Annual
1            2          SALARY    2000   24000
3            4          SALARY    1500   18000
5            6          SALARY    1800   21600

此外,如果您想在原始框架上应用它,请找到这个,

dic = df.set_index("Customer_ID")["Annual"].to_dict()

并将其应用于实际的 dtaframe 使用df.map(dic)

解释:

  1. 首先删除不需要的记录,只获取“cr”或 Salary 记录。
  2. 现在Dataframe有每个客户一个月数据的工资贷记记录。即,客户 ID 和金额是一对一的映射。
  3. 将金额乘以 12 以获得年度价值。
  4. 将客户转换为 dic 中的年度价值并替换为实际框架。

推荐阅读