Python 熊猫-多标准国家逐行
我有这个数据框: 在excel中,我有一个简单的计数if=ifCOUNTIFSB:B,B2,A:A,=A=0,No,Yes 因此,从本质上讲,我如何循环所有行,计算MatchID中的单元格是否与RangeMatchID对应,以及Rangeprovider=A 同时在新列中记录条目 用VBA和excel就足够了,但是python/Pandas对我来说是新的,仍然稍微超出了我的理解范围 这可能吗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']=='
谢谢您的帮助。您可以这样做:
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中复制,直接工作。现在我只需要解剖它,这样我就知道它是如何工作的。