【发布时间】:2020-02-11 10:02:58
【问题描述】:
我有两只熊猫 DF。大小不等。例如:
Df1
id value
a 2
b 3
c 22
d 5
Df2
id value
c 22
a 2
不,我想从 DF1 中提取那些与 DF2 中具有相同 ID 的 行。现在我的第一种方法是运行 2 个 for 循环,例如:
x=[]
for i in range(len(DF2)):
for j in range(len(DF1)):
if DF2['id'][i] == DF1['id'][j]:
x.append(DF1.iloc[j])
现在这没关系,但是对于一个 400,000 行和另一个 5,000 行的 2 个文件,我需要一种高效的 Pythonic+Pnadas 方式
【问题讨论】:
-
使用
join加入id列上的数据集。加入后你会得到一些带有 NaN 值的行——你应该使用dropna方法。然后过滤加入的数据 - 可能使用pd.apply方法。 -
嗨@404pio 这个建议对我非常有用。我想如果可以的话,我会把这个作为答案
-
您可以为您的问题制定答案:stackoverflow.com/help/self-answer - 这是一种“知识库”。
标签: python pandas loops compare data-files