将字符串和列表都传递给pandas .isin方法

时间:2020-07-29 19:59:27

标签: python pandas string list isin

我正在尝试将字符串和列表都传递给pandas .isin()方法。这是我的下面的代码

<nuxt-link
  v-for="job in jobs"
  :key="job.id"
  :to="{ name: 'job', params: { id: job.id } }"
>
  <JobPost :details="job.post" />
</nuxt-link>

这里的问题是.isin([])对于字符串的每次迭代都很好,但是当我到达了total_months [-1]时,它是一个列表,您不能将列表传递到.isin([])句法。香港专业教育学院试图这样做,但不能删除双引号,因为我的理解是字符串是不可变的:

    overall_months = ['APR', 'JUL', 'NOV', 'MAR', 'FEB', 'AUG', 'SEP', 'OCT', 'JAN', 'DEC', 'MAY', 
    'JUN', ['APR', 'JUL', 'NOV', 'MAR', 'FEB', 'AUG', 'SEP', 'OCT', 'JAN', 'DEC', 'MAY', 'JUN']]

    for mon in overall_months:
        temp_df = df.month.isin([[mon]]))

这将产生:“'APR','JUL','NOV','MAR','FEB','AUG','SEP','OCT','JAN','DEC','MAY' ,“ JUN”” 如果是,则可以将其传递给我的语法:“ APR”,“ JUL”,“ NOV”,“ MAR”,“ FEB”,“ AUG”,“ SEP”,“ OCT”,“ JAN”,“ DEC” ,“ MAY”,“ JUN”

是否有以最佳方式完成此任务的帮助?

1 个答案:

答案 0 :(得分:1)

您可以检查元素是否为带有isinstance的列表:

for mon in overall_months:
    if not isinstance(mon, list): mon = [mon]
    tmp_df = df.month.isin(mon)