难以理解这部分代码的工作原理

时间:2019-03-14 18:40:36

标签: python python-3.x pandas dataframe

const mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');
const postCssImport = require('postcss-import');
const purgeCss = require('laravel-mix-purgecss');

mix.setPublicPath('/full/path/to/Sites/folder/dl/site/themes/bootstrap');
mix
  .postCss(
    'resources/css/base.css',
    'css',
    [
      postCssImport(),
      tailwindcss('tailwind.js'),
    ]
  )
  .version();

mix.browserSync({
  proxy: 'http://dl.test',
  browser: 'safari',
  files: ['**/*.html', 'css/*.css']
});

if (mix.inProduction()) {
  mix.purgeCss();
}

上面的代码从“ specialties”列中获取值,并将其转换为低位并删除单词之间的空格。我不明白上面的代码行实际上是如何工作的以及如何更改值。有人可以向我解释一下吗?

那是我执行上面的代码后得到的输出。

# Sample Data
df2 = pd.DataFrame({'description': ['d1', 'd2', 'd3'], 
                   'specialties': ['a1 A1,b2 B2,c3 C3', 'd4 D4,e4 E4,f5 F5,f6 F6', 'g5,h6,i7']}, 
                  index=['name1', 'name2', 'name3'])
df2['specialties'] = [','.join(x) for x in df2['specialties'].map(lambda x: x.lower().replace(' ','').split(',')).values]

1 个答案:

答案 0 :(得分:0)

要分析正在发生的事情,您必须分解为至少两个语句。

首次运行:

df2['specialties'].map(lambda x: x.lower().replace(' ','').split(',')).values

这将获取'specialties'列中的每个值,并将其传递给map函数,该函数运行以下方法。 lowerreplacesplit用逗号隔开。这是一个小写字母字符串的列表。

现在,使用返回的列表,然后使用列表理解和连接将列表部分重新连接在一起。

[','.join(x) for x in newlist]

然后,重新创建以小写字母传递的列列表。