Python 在单元级别设置操作
假设我有一个Python 在单元级别设置操作,python,pandas,Python,Pandas,假设我有一个数据帧,其中一列中的值是集: df=pd.DataFrame([{'song':'Despacito','genres':{'pop','rock'}, {'song':'We will rock you','Tyres':{'rock'}, {'song':'Fur Eliza','流派':{'piano'}}]) 打印(df) 如何选择与预期类型重叠的类型行?例如,我希望 df[~df['genres'].交叉点({'rock','metal'})] 要返回前两首歌曲:
数据帧
,其中一列中的值是集
:
df=pd.DataFrame([{'song':'Despacito','genres':{'pop','rock'},
{'song':'We will rock you','Tyres':{'rock'},
{'song':'Fur Eliza','流派':{'piano'}}])
打印(df)
如何选择与预期类型重叠的类型行?例如,我希望
df[~df['genres'].交叉点({'rock','metal'})]
要返回前两首歌曲:
song genres
0 Despacito {rock, pop}
1 We will rock you {rock}
显然,这将失败,因为Series
没有intersection()
方法,但是您知道了。
有没有办法用pandasDataFrame
实现它,或者DataFrame
的结构不适合我的目标?使用以下方法:
预期的输出是什么?@MayankPorwal数据帧的前两行,因为它们的类型与预期的集合重叠。我用例子更新了我的问题。
song genres
0 Despacito {rock, pop}
1 We will rock you {rock}
df = df[~df['genres'].map({'rock', 'metal'}.isdisjoint)]
print (df)
song genres
0 Despacito {rock, pop}
1 We will rock you {rock}