在Python中,如何根据多值列多次返回记录

在 Python 中,我有以下数据。 (注:下面我以表格格式显示数据,方便阅读,但数据实际上是格式正确的csv文件。)

ID,Movie,tag  
1,Fury,#action #war    
2,Shrek,#cartoon #comedy #fantasy  
3,Spaceballs,#comedy #space   
4,Cinderfella,#comedy   
5,Galaxy Quest,#comedy #space 

我想得到如下列表。

#action   Fury
#cartoon  Shrek
#comedy   Cinderfella
#comedy   Galaxy Quest
#comedy   Shrek
#comedy   Spaceballs
#fantasy  Shrek
#space    Galaxy Quest
#space    Spaceballs
#war      Fury

请注意为什么只有 5 个电影标题,而且每部电影可以有多个标签。我需要将电影记录分解为 10 行。因此,电影的每个标签在输出中都会有一行。 Fury 显示在输出的 2 行上。史莱克3等

我该怎么做?

感谢您的帮助。

oliverleaf 回答:在Python中,如何根据多值列多次返回记录

查看评论

代码:

m_list = []
with open("data.csv","r") as f:
    out = f.readlines()
    for line in out[1:]:  # skip the heading using 1:
        ID,Movie,tags = line.rstrip().split(',') # rstrip to remove newline character
        m_list += [[tag,Movie] for tag in tags.split()]
for m in m_list:
    print(m)

输出:

['#action','Fury']
['#war','Fury']
['#cartoon','Shrek']
['#comedy','Shrek']
['#fantasy','Spaceballs']
['#space','Spaceballs']
['#comedy','Cinderfella']
['#comedy','Galaxy Quest']
['#space','Galaxy Quest']
    
本文链接:https://www.f2er.com/1224950.html

大家都在问