df100=a[['genres','imdb_score']]
df100
genres imdb_score
0 Action|Adventure|Fantasy|Sci-Fi 7.9
1 Action|Adventure|Fantasy 7.1
2 Action|Adventure|Thriller 6.8
3 Action|Thriller 8.5
4 Documentary 7.1
... ... ...
5038 Comedy|Drama 7.7
5039 Crime|Drama|Mystery|Thriller 7.5
5040 Drama|Horror|Thriller 6.3
5041 Comedy|Drama|Romance 6.3
5042 Documentary 6.6
def tuples(p):
t= [(p[0], p[1]) for p[0], p[1] in zip(df100.genres, df100.imdb_score) for p[0] in p[0].split('|')]
return t
tuples(df100.loc[0,['genres','imdb_score']])
因此,我创建了上面的数据框架,其中的列是流派和imdb分数。然后,我创建了一个函数tuples(),该函数将流派列拆分为每个独特的流派,然后在其旁边添加imdb_分数。(如下图所示),然后我应用了tuples(df100.loc[0,['genres','imdb_分数]])所示的函数,希望得到下面所示的数据帧第一行的2d元组。然而,我最终得到了数据帧中所有行的一个完整列表,而不仅仅是第一行。有谁能帮我修改一下这个函数,让我在第一行使用它,然后分别将它应用到整个数据帧上
[('Action',7.9),('Adventure',7.9),('Fantasy',7.9),('Sci-Fi',7.9)]
您需要每行的元组列表;您可以使用zip和itertoolsproduct实现这一点。您应该能够根据需要对其进行修改
IIUC,使用explode和itertuples,我们可以从数据帧创建元组
如果需要以特定行为目标,则此函数使用
isin
将实现以下功能:如果希望每一行都包含在嵌套的排序列表中
输出:
相关问题 更多 >
编程相关推荐