Python 2个不同列的数据帧

Python 2个不同列的数据帧,python,pandas,Python,Pandas,我有两个数据帧,适合和质量。它们只有一个类似的列“CATAID”。fit数据框包含整个实验的相关信息。然而,质量实验只包含一小部分实验 对于我的工作,我需要fit数据框中的信息,但是对于mass数据框中的“CATAID”值。我需要循环fit中的列值,并选择与mass中的CATAID值匹配的行 我使用以下循环 file=pd.DataFrame() 对于质量指数中的i: cataid_m=质量。位置[i,'cataid'] 对于拟合指数中的j: cataid_f=fit.loc[j,'cataid

我有两个数据帧,适合和质量。它们只有一个类似的列“CATAID”。fit数据框包含整个实验的相关信息。然而,质量实验只包含一小部分实验

对于我的工作,我需要fit数据框中的信息,但是对于mass数据框中的“CATAID”值。我需要循环fit中的列值,并选择与mass中的CATAID值匹配的行

我使用以下循环

file=pd.DataFrame()
对于质量指数中的i:
cataid_m=质量。位置[i,'cataid']
对于拟合指数中的j:
cataid_f=fit.loc[j,'cataid']
如果cataid\u m==cataid\u f:
文件[j]=fit.iloc[j]

我唯一关心的是这个循环所花费的时间。我想知道是否有人对如何改进此循环有任何建议?

您可以通过首先在海量数据帧中获取ID来实现这一点

mass_id = mass_df['CATAID'].unique().tolist()
然后,您可以从主数据框中获取行,其中CATAID位于mass_id中:

relevant_df = fit_df.loc[fit_df['CATAID'].isin(mass_id)]

我认为合并在这里不能用作删减注释,因为我们并没有试图连接这两个数据帧。我们只是试图从一个数据帧中提取ID,并获取与这些ID匹配的行。

这似乎是一个直接的DF合并,不是吗?欢迎使用堆栈溢出!请您的问题为您的问题提供一个解决方案,包括输入和输出示例,以便我们更好地了解问题。看一看否,fit DF在质量DF中有“CATAID”值,还有一些不在质量DF中。我不是在合并它们,而是在fit DM中选择与mass DF中的“CATAID”列相同的“CATAID”值,并将所选“CATAID”值的行存储在新的数据框中。非常感谢。这是最简单的方法。很高兴它有效。请把它标记为答案,这样其他人也可以得到帮助