我有三个带名称的tsv文件; file1.tsv,file2.tsv和file3.tsv
这三个tsv文件具有以下列名;
现在,我想创建一个tsv文件,其中的每个ID都会通过检查三个文件来获取串联的“注释”字符串。
例如;
file1.tsv
ID Comment
Anne Smith Comment 1 of Anne smith
Peter Smith Comment 1 of peter smith
file2.tsv
ID Comment
John Cena Comment 2 of john cena
Peter Smith Comment 2 of peter smith
file3.tsv
ID Comment
John Cena Comment 3 of john cena
Peter Smith Comment 3 of peter smith
结果文件应为;
results.tsv
ID Comment
Anne Smith Comment 1 of Anne smith
John Cena Comment 2 of john cena. Comment 3 of john cena.
Peter Smith Comment 1 of peter smith. Comment 2 of peter smith. Comment 3 of peter smith
我是熊猫新手。只是想知道我们是否可以使用Pandas或任何其他合适的库来执行串联操作,而不是从头开始编写。
答案 0 :(得分:4)
假设您将tsv读入df1,df2,df3
df=pd.concat([df1,df2,df2]).groupby('ID').Comment.apply('. '.join)
答案 1 :(得分:1)
答案 2 :(得分:1)
为进一步扩展Wen的答案,最后一个循环不是很简单,但它可以工作...
Vue.component('menu-section', {
props: ['menusection'],
template: '<li>{{ menusection.name }}</li>'
})
Vue.component('menu-section-info', {
props: ['menusectioninfo'],
template: '#menusectioninfo-template'
})
new Vue({
el:'#app',
data: {
// this will be retrieved using an ajax request
menuSectionList: [
{ id: 1, name: 'Pizzas' },
{ id: 2, name: 'Burgers' },
{ id: 3, name: 'Wraps' },
{ id: 4, name: 'Drinks' },
{ id: 5, name: 'Sweets' }
]
}
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
<ol>
<menu-section v-for="item in menuSectionList"
v-bind:menusection="item"
v-bind:key="item.id">
</menu-section>
</ol>
<div style="margin-top:20px;">
<!-- The info here has been hardcoded, it should be retrieved using an ajax request when one of the sections has been clicked. The favourites link should also make and ajax request passing the selected section. -->
<menu-section-info menusectioninfo="We sell the best burgers in the world!"></menu-section-info>
</div>
</div>
<script type="text/x-template" id="menusectioninfo-template">
<div>
<div>{{ menusectioninfo }}</div>
<div><a href="#">Click here to add section to your favourites list</a></div>
</div>
</script>