微信小程序二级联动,如何使第一列数据与特定的第二列数据对应(数据动态获取,后台)?
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】:
您可以在Name
上map
和fillna
在NickName
上:
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
【讨论】:
以上是关于微信小程序二级联动,如何使第一列数据与特定的第二列数据对应(数据动态获取,后台)?的主要内容,如果未能解决你的问题,请参考以下文章
如何将两个熊猫列混合到一个数据框中,第一列的第一个元素,第二列的第二个元素等等? [复制]