Python 熊猫-多标准国家逐行

Python 熊猫-多标准国家逐行,python,pandas,Python,Pandas,我有这个数据框: 在excel中,我有一个简单的计数if=ifCOUNTIFSB:B,B2,A:A,=A=0,No,Yes 因此,从本质上讲,我如何循环所有行,计算MatchID中的单元格是否与RangeMatchID对应,以及Rangeprovider=A 同时在新列中记录条目 用VBA和excel就足够了,但是python/Pandas对我来说是新的,仍然稍微超出了我的理解范围 这可能吗 谢谢您的帮助。您可以这样做: cond_list = df.loc[df['Provider']=='

我有这个数据框:

在excel中,我有一个简单的计数if=ifCOUNTIFSB:B,B2,A:A,=A=0,No,Yes

因此,从本质上讲,我如何循环所有行,计算MatchID中的单元格是否与RangeMatchID对应,以及Rangeprovider=A

同时在新列中记录条目

用VBA和excel就足够了,但是python/Pandas对我来说是新的,仍然稍微超出了我的理解范围

这可能吗


谢谢您的帮助。

您可以这样做:

cond_list = df.loc[df['Provider']=='A', 'MatchID'].tolist() #list of MatchIDs that have Provider with value 'A'

df['Solution'] = df['MatchID'].apply(lambda x: 'Yes' if x in cond_list else 'No')

这是一个矢量化的解决方案。一般来说,尝试使用一个集合进行比较和内置功能,如map/isin。这不仅效率更高,而且可读性更强

filter_set = set(df.loc[df['Provider']=='A', 'MatchID'])  # set of MatchIDs with Provider 'A'

df['Solution'] = df['MatchID'].isin(filter_set).map({True: 'Yes', False: 'No'})
这段代码会有帮助

#create dataframe object
#consider it as df

check = (df['MatchID'] > 'yourmatchId') & (a['provider'] <"A")
df["NewColumn"] = df[check]['YourRequiredColumn']

欢迎来到StackOverflow。请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些提示可能也很有用。此外,并非每个人都熟悉Excel-用户可能不知道Excel公式的作用,您可能想解释它的作用,以便它可以在pandasAwesome中复制,直接工作。现在我只需要解剖它,这样我就知道它是如何工作的。