如何解决在lambda函数中连接两列
我有一个包含2列“ first_name”和“ name”的数据框。
我想做的是检查first_name的长度,如果它是 3,则new_name应该与“ first_name”相同。
示例:
first_name name new_name
V David VDavid
我尝试这样做:
df = df.assign(new_name= lambda x: x.first_name + x.name if len(x.first_name) <= 3 else x.first_name)
这一段代码应该可以解决问题,但无法正常工作。无论单词的长度如何,它都只是返回first_name。
有人可以帮我吗?
解决方法
使用:
public static void run(String referenceFile,String dir) throws FileNotFoundException,IOException
{
List<Gene> referenceGenes = ParseReferenceGenes(referenceFile);
List<String> filenames = ListGenbankFiles(dir);
ExecutorService executor = Executors.newFixedThreadPool(4);
List<Callable<Map<String,Sigma70Consensus>>> tasks = ListGenbankFiles(dir);
for (String filename: filenames)
{
tasks.add(new MyTask(filename));
}
for (Future<Map<String,Sigma70Consensus>> result : executor.invokeAll(tasks)) {
for (Map.Entry<String,Sigma70Consensus> entry : result.get().entrySet())
System.out.println(entry.getKey() + " " + entry.getValue());
}
}
public class MyTask implements Callable<Map<String,Sigma70Consensus>> {
private final String fileName;
public MyTask(String fileName) { this.fileName = fileName; }
public Map<String,Sigma70Consensus> call() {
/* The file processing code you have in the loop here */
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。