【问题标题】:Using df1 as a lookup table for df2, df2 has more unique values than df1 in Python使用 df1 作为 df2 的查找表,在 Python 中 df2 比 df1 有更多的唯一值
【发布时间】:2020-12-07 00:28:05
【问题描述】:

我有一个美国公民所在州的 df,我想用它来查找世界公民

df1=

[Sam, New York;
Nick, California;
Sarah, Texas]

df2 =

[Sam;
Phillip;
Will;
Sam]

我想用状态替换 df2.replace() 或者在我的输出所在的位置创建 df3:

[New York;
NaN;
NaN;
New York]

我尝试过使用 set_index 和 dict(zip()) 进行映射,但到目前为止都没有运气。

谢谢。

【问题讨论】:

  • 那不是数据框

标签: python dataframe lookup


【解决方案1】:

这个方法怎么样:

import pandas as pd
df1 = pd.DataFrame([['Sam','New York'],['Nick','California'],['Sarah','Texas']],\
    columns = ['name','state'])
display(df1)

df2 = pd.DataFrame(['Sam','Phillip','Will','Sam'],\
    columns = ['name'])
display(df2)

df2.merge(right=df1,left_on='name',right_on='name',how='left')

导致


name    state
0   Sam New York
1   Nick    California
2   Sarah   Texas

name
0   Sam
1   Phillip
2   Will
3   Sam

name    state
0   Sam New York
1   Phillip NaN
2   Will    NaN
3   Sam New York

然后您可以只过滤合并数据框中的状态列

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2021-11-04
    • 2017-02-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2021-04-07
    相关资源
    最近更新 更多