将数字与不同的单词相关联python

时间:2018-07-23 17:39:07

标签: python pandas

因此,我有一个数据帧(df9),该数据帧有几列,其中一列是“ ASSET_CLASS”,还有一个名为“ terms”的变量。 ASSET_CLASS由不同的名称组成,而“术语”是数字。我希望能够在数据框中创建一个新行,该行根据相应的资产类别和条款#输出每行不同的数字。例如,如果Asset_Class连续为'A',并且该行的#terms在30到60之间,则我希望新列输出该行的数字5。或者,如果Asset_Class为'A'并且#terms在0到30之间,则新列的该行射出3。或者,如果“资产类别”为“ B”,且条件在30到60之间,则该行的新列中的输出为8。任何人都知道如何执行此操作?我当时在想,是否还有其他陈述,但我不确定。

1 个答案:

答案 0 :(得分:2)

使用numpy.select。为了匹配您的前两个示例,以下代码应在数据框中添加一个名为“ newcol”的新列,匹配您的前两个案例,并在未明确定义的案例未覆盖的所有地方放置值-1。

ac = df9.ASSET_CLASS
t = df9.terms
condlist = [(ac=='A') & (t>=30) & (t<60), (ac=='A') & (t>=0) & (t<30)]
choicelist = [5, 3]
df9['newcol'] = np.select(condlist, choicelist, default=-1)