我希望能够在过敏栏下复制三种语言的值。我想使用pandas Dataframes将特定的单元格值数据从英文行移动到它上面的法语和荷兰语下面。在复制之后,我想删除英文行。
注意:索引是以下语言。它们按法语,英语,荷兰语,法语,英语,荷兰语等顺序排列。每个值是典型的反应是在列过敏下给出
Index allergy
french ''
english 'MAY CONTAIN: prawn'
dutch ''
french ''
english 'MAY CONTAIN: peanuts'
dutch ''
french ''
english 'MAY CONTAIN: milk'
dutch ''
再次总结一下,将特定的细胞值从英语复制到荷兰语和法语行。
编辑:我再也没有评论了:是的,这是这个数据集的模式。此输出显示在excel文件中。
期望的输出:
Index allergy
french 'MAY CONTAIN: prawn'
english 'MAY CONTAIN: prawn' # remove
dutch 'MAY CONTAIN: prawn'
french 'MAY CONTAIN: peanuts'
english 'MAY CONTAIN: peanuts' # remove
dutch 'MAY CONTAIN: peanuts'
french 'MAY CONTAIN: milk'
english 'MAY CONTAIN: milk' # remove
dutch 'MAY CONTAIN: milk'
之后,它看起来应该是这样的
最终输出:
Index allergy
french 'MAY CONTAIN: prawn'
dutch 'MAY CONTAIN: prawn'
french 'MAY CONTAIN: peanuts'
dutch 'MAY CONTAIN: peanuts'
french 'MAY CONTAIN: milk'
dutch 'MAY CONTAIN: milk'
答案 0 :(得分:2)
首先仅过滤english
行并创建默认索引:
df1 = df.loc['english'].reset_index(drop=True)
print (df1)
allergy
0 'MAY CONTAIN: prawn'
1 'MAY CONTAIN: peanuts'
2 'MAY CONTAIN: milk'
然后concat
两次,排序并最后删除第二级:
df = (pd.concat([df1, df1], keys=('french','dutch'))
.sort_index(level=1)
.reset_index(level=1, drop=True)
)
print (df)
allergy
french 'MAY CONTAIN: prawn'
dutch 'MAY CONTAIN: prawn'
french 'MAY CONTAIN: peanuts'
dutch 'MAY CONTAIN: peanuts'
french 'MAY CONTAIN: milk'
dutch 'MAY CONTAIN: milk'