我已经用功能更新了问题。我需要使用下面的数据集,并根据azid中存在的uuid修改汇总列和快照间隔
输入
uuid azid Rollup Snapshot_Interval
ce2354 ['fe4578'; 'ce2354'] [1;1] ['MONTHLY';'WEEKLY']
ca8458 ['de9874'; 'ca8458'] [7;6] ['WEEKLY';'DAILY']
be4589 ['be4589';'we6780'] [4;6] ['YEARLY','WEEKLY']
输出表:
uuid azid Rollup Snapshot_Interval
ce2354 ['fe4578'; 'ce2354'] 1 MONTHLY
ca8458 ['de9874'; 'ca8458'] 7 WEEKLY
be4589 ['be4589';'we6780'] 6 WEEKLY
条件:1。将uuid与azid与Lambda进行比较。如果uuid位于azid的第二部分,则列rollup和snapshot_interval的正确值分别是rollup和snapshot_interval列列表中可用的第一个记录元素。 2.如果uuid位于azid的第一部分,则正确的值分别是rollup和snapshot_interval列列表中可用的记录的第二个元素
说明:
uuid“ce2354”在azid的第二部分['fe4578';'ce2354']中可用,因此要显示的汇总和快照间隔必须为1,每月一次。这些在列表的第一部分中提供
uuid“be4589”在azid的第一部分中可用[“be4589”;“we6780”],因此每周显示的汇总和快照间隔必须为6次。这些可在列表的第二部分中找到
我试着用pandas和Lambda编写下面的代码,但是我发现了一些错误。python中任何更新的方法都会有所帮助
df1= d1['Rollup'].str.extract(r'(\d+)',expand=False)
df2_updated = df2.loc[(df['uuid']==df['azid']), df2['Rollup'].str.extract(r'([a-zA-Z ]+)',expand=False)]
如果
azid
必须包含uuid
,azid
只是两个元素的列表,我认为这里有一个简单的解决方案:使用Lambda的解决方案:
相关问题 更多 >
编程相关推荐