比较子集和超集 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 进行比较
pandas.DataFrame.to_sql - 源 csv 文件和目标表的列顺序
如何将 Pandas DataFrame 的列和行子集转换为 numpy 数组?