【发布时间】:2021-01-14 00:12:09
【问题描述】:
我有这个 df(带有示例所需的结果)
dfn = pd.DataFrame({"country_code": ["USA, UK, FRA", "RUS, ZHC, JAP", "IN, BRA, ES"],
"all_but_american_desired": [["United Kingdom", "France"], ["Russia", "China", "Japan"], ["India", "Spain"]]})
我将(到目前为止)字符串“翻译”成新的含义并存储为元素列表
masked = {"USA":"United States", "UK":"United Kingdom", "FRA":"France",
"RUS":"Russia", "ZHC":"China", "JAP":"Japan",
"IN":"India", "BRA":"Brazil", "ES":"Spain"}
dfn["country_name"] = dfn["country_code"].apply(lambda x: [", ".join({masked[i] for i in x.split(", ")})])
然后我想通过外部列表american提取一些已翻译的国家/地区名称系列并将它们放在单独的系列中 (all_but_american)
american = ["United States", "Brazil"]
结果应与all_but_american_desired 系列相同。到目前为止我尝试过的:
dfn["all_but_american1"] = dfn["country_name"].apply(lambda x: [i for i in x if i not in american])
我之前使用了尝试1非常相同的方法并且它有效,但是这次没有任何工作,我找不到它的原因(这次我也尝试了其他方法,但因为我不熟悉与他们一起,我将避免发布)...有人可以检查一下吗?如果可能的话,解释一下我做错了什么。
【问题讨论】:
标签: python pandas list extract expand