【问题标题】:how to make this changing dataframe faster?如何使这个不断变化的数据框更快?
【发布时间】:2019-12-06 05:19:14
【问题描述】:
list_nn = [k for k in list(df['job_keyword'].unique()) if not str(k).isdigit()]
i = 0
for  k in list_nn:
    df.loc[df.job_keyword == k ,'job_keyword'] = i
    df.loc[df.user_keyword == k , 'user_keyword'] = i
    i+=1

它是通过数据框列的循环,如果它与它匹配,则随着数字的变化而变化
需要超过 3 分钟,有没有办法让这个速度更快?

我想让整个数据框看起来更快

【问题讨论】:

  • 您能至少分享一些您的程序和数据吗?我们应该如何提高我们不理解且无法运行的程序的性能?一般来说,使用 Pandas 时,显式循环应该是最后的手段。

标签: python dataframe machine-learning


【解决方案1】:

您可以尝试以下方法:

df[df.job_keyword.isin(list_nn)] = df[df.job_keyword.isin(list_nn)].index
df[df.user_keyword.isin(list_nn)] = df[df.job_keyword.isin(list_nn)].index

【讨论】:

  • 您无法保证索引只是一个整数值范围。
猜你喜欢
  • 1970-01-01
  • 2018-06-26
  • 1970-01-01
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
相关资源
最近更新 更多