微信小程序二级联动,如何使第一列数据与特定的第二列数据对应(数据动态获取,后台)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序二级联动,如何使第一列数据与特定的第二列数据对应(数据动态获取,后台)?相关的知识,希望对你有一定的参考价值。

希望有详细代码

参考技术A 每列数据加一个id属性,根据选中的id获取第二列

如果 pandas 数据框的第一列不匹配,则加入第二列

【中文标题】如果 pandas 数据框的第一列不匹配,则加入第二列【英文标题】:Join on a second column if there is not a match on the first column of a pandas dataframe 【发布时间】:2021-01-30 15:05:51 【问题描述】:

如果 pandas 数据框 (Python 3.x) 的第一列不匹配,我需要能够匹配第二列。

例如


table_df = pd.DataFrame ( 
                    'Name': ['James','Tim','John','Emily'],
                    'NickName': ['Jamie','','','Em'],
                    'Colour': ['Blue','Black','Red','Purple']                          
                          )

lookup_df = pd.DataFrame ( 
                    'Name': ['Tim','John','Em','Jamie'],
                    'Pet': ['Cat','Dog','Fox','Dog']   
                    )

table_df

        Name    NickName    Colour
0       James   Jamie        Blue
1       Tim                  Black
2       John    Red
3       Emily   Em           Purple

lookup_df

    Name    Pet
0   Tim     Cat    
1   John    Dog
2   Em      Fox
3   Jamie   Dog

我需要的结果:

    Name    NickName    Colour  Pet
0   James   Jamie       Blue    Dog
1   Tim                 Black   Cat
2   John                Red     Dog
3   Emily   Em          Purple  Fox

在 Name 列上匹配,如果没有匹配到 Nickname 列, 我尝试了很多不同的方法,包括:

pd.merge(table_df,lookup_df, how='left', left_on='Name', right_on='Name')
if Nan -> pd.merge(table_df,lookup_df, how='left', left_on='NickName', right_on='Name')

但它不能满足我的需要,我想避免嵌套循环。 有没有人知道如何做到这一点?非常感谢任何反馈。

谢谢!

【问题讨论】:

只需执行两次merge,一次在Namw,另一次在NickName 【参考方案1】:

您可以在NamemapfillnaNickName 上:

s = lookup_df.set_index("Name")["Pet"]

table_df["pet"] = table_df["Name"].map(s).fillna(table_df["NickName"].map(s))

print (table_df)

    Name NickName  Colour  pet
0  James    Jamie    Blue  Dog
1    Tim            Black  Cat
2   John              Red  Dog
3  Emily       Em  Purple  Fox

【讨论】:

以上是关于微信小程序二级联动,如何使第一列数据与特定的第二列数据对应(数据动态获取,后台)?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查sql的第一列或第二列中是不是存在一个特定值?

如何将两个熊猫列混合到一个数据框中,第一列的第一个元素,第二列的第二个元素等等? [复制]

小程序picker多列滚动使用注意事项

如何根据 Python、R 中不同数据框/患者之间的第一列元素/基因取第二列值/计数的平均值?

如果 pandas 数据框的第一列不匹配,则加入第二列

微信小程序picker组件 - 省市二级联动