【问题标题】:How to lookup value in another table in Python如何在 Python 中的另一个表中查找值
【发布时间】:2019-11-13 09:13:59
【问题描述】:

我有两个(实际上很多,但坚持使用两个)数据集,我需要将它们合并在一起。但是,它们不是相同的范围,并且具有不同的参考值。让我们考虑

a 1
b 2
c 3
e 4

a 2
b 3
d 7
e 2

我尝试模拟 Excel 索引和匹配函数,但我无法得到正确的结果

b = []
f = []

for i in data1["c1"]:
    if i in data2["c1"]:
        a = d3[data2["c4"].index[i]]
        f = b.append(a)
    else:
        continue

print(f)

你能帮我看看这是怎么回事吗?我也欢迎提供有关此主题的更多信息的链接。谢谢

【问题讨论】:

  • 你能发布当前和想要的输出吗?
  • 您使用的是熊猫数据框吗?还是另一个“桌子”?请创建示例输入和输出并提供minimal reproducible example
  • 当前输出为空列表,如定义了f。我想要的输出是第二个表中的值列表,它对应于第一个表的第一列,在我的示例中,我希望有两个表 f = [2,3,NA,2]
  • 我用 pandas read_csv 函数加载了 2 个不同的 csv 文件,然后我将所需的列作为 pandas 系列。
  • 首先,else: continue 是不必要的。无论如何,循环将继续。然后您正在使用 data1 和 data2,这可以理解为两个数据表。但什么是 d3,你的键是“c1”还是“c4”?更清楚地说明您的代码将非常有用。

标签: python python-3.x dataset lookup-tables


【解决方案1】:

如果您想从以上两个创建一个合并文件,例如:

  Col1  Col2  Col3
  a     1    2
  b     2    3
  c     3    7
  d     4    2

您可以简单地使用字典,keys 作为您的第 1 列值:a, b, c, d 和值作为您的两个 DataFrame 的第 2 列值的 list,分别如下:

your_dict = {a:[1,2], b:[2,3], c:[3,7], d:[4,2]}

然后要将其输出到一个 DataFrame 中,例如上面的那个,只需在 pandas 中使用orient 参数等于'index'.from_dict() 方法,请参阅文档here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多