比较子集和超集 CSV 的列,并在 Pandas 中输出相交列 + 超集 CSV 的另一列

Posted

技术标签:

【中文标题】比较子集和超集 CSV 的列,并在 Pandas 中输出相交列 + 超集 CSV 的另一列【英文标题】:Compare columns of subset and superset CSVs and output intersecting column + another column of superset CSV in Pandas 【发布时间】:2018-06-23 07:07:44 【问题描述】:

假设我有一个名为 super 的 CSV 文件,其中包含列-

Num, Val

1、10

2、25

3、85

4、87

我还有另一个 CSV 文件 sub 有一个列-

Num

2

4

现在我想要的是表单的输出-

Num,Val

2、25

4、87

如何在 Pandas 中实现这一点?

【问题讨论】:

为什么匹配?你试过什么? 现在我什么都没试过。它们不是这样匹配的,只是我想匹配它们 你能用人们可以使用的代码创建一些数据集吗? 【参考方案1】:

通过这种详细程度很难猜出您要达到的目标。但这是第一次试验:这就是你要找的吗?

import pandas as pd
super = pd.read_csv("super.csv")
sub = pd.read_csv("sub.csv")
# Option 1 - using [merge][1]
result = pd.merge(super, sub, on="Num", how="inner")
# Option 2 - using the [isin][1] method
result = super.loc[super["Num"].isin(sub["Num"].unique())]

【讨论】:

以上是关于比较子集和超集 CSV 的列,并在 Pandas 中输出相交列 + 超集 CSV 的另一列的主要内容,如果未能解决你的问题,请参考以下文章

将两个 csv 文件与 python pandas 进行比较

在oracle中将数据从子集表插入超集表

pandas.DataFrame.to_sql - 源 csv 文件和目标表的列顺序

如何将 Pandas DataFrame 的列和行子集转换为 numpy 数组?

使用 Pandas [with key column] 将 CSV 与不同的列组合

当日期和时间在不同的列中时,将数据从 csv 读取到 pandas