Python 如何在lambda中运行嵌套循环,其中一个值来自字典,一个键有多个值?
我想在dataframe中使用python中的lambda创建一个新列,在该列中,我必须在dict上运行一个循环,该循环对一个键具有多个值,并将其映射到另一个变量,如果为一个键分配了两个值,则循环对dict中的每个值运行 下面是我编写的代码,但无法映射到每个dict值,而是一个值对Python 如何在lambda中运行嵌套循环,其中一个值来自字典,一个键有多个值?,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我想在dataframe中使用python中的lambda创建一个新列,在该列中,我必须在dict上运行一个循环,该循环对一个键具有多个值,并将其映射到另一个变量,如果为一个键分配了两个值,则循环对dict中的每个值运行 下面是我编写的代码,但无法映射到每个dict值,而是一个值对 acc['metric']=acc.apply(λx:f'{kind}.{squ.units}.{inv}.{self.name}.{x.label}',axis=1) 所以这里squ有一个键值对,其中单位键在一点上
acc['metric']=acc.apply(λx:f'{kind}.{squ.units}.{inv}.{self.name}.{x.label}',axis=1)
所以这里squ有一个键值对,其中单位键在一点上有多个值
公制列输出类似于-
day.{'cde','abc'}.dev.bde.ops
day.{'test','rmp'}.sand.sab.ops
但我希望输出是-
day.cde.dev.bde.ops
day.abc.dev.bde.ops
day.test.sand.sab.ops
day.rmp.sand.sab.ops
有人可以建议如何实现这一点吗?您可以循环查看
squ.units
的值,然后在列上返回一个列表,然后在公制
上返回
acc['metric']=acc.apply(λx:[f'{kind}.{unit}.{inv}.{self.name}.{x.label}表示squ.units中的单位,轴=1)
acc=acc.explode(‘公制’)
我不想在day.cde.abc.dev.bde.ops中获得此输出,但希望在day.cde.dev.bde.ops和day.abc.dev.bde.ops中获得此输出。squ为dict类型,单位为key@shreytyagi请参阅我编辑的答案。谢谢@Ynjxsjmh