我有一个csv文件,我已将其加载到数据框中。
... SCity,DCity,CVtype,L1Name ....
我想为SCity,DCity和CVType的特定组合提取L1Name。
理想情况下,数据应以列表形式返回,以便我可以使用每个返回值从数据帧中提取其他信息,例如每个L1Name的成本(用于SCity,DCity和CVType的其他(不匹配)值)。
示例SCity为'Chennai',Dcity为'Pune',类型为'32 Ft'我应该得到L1Name的列表 f1 f2 f3
我不知道如何在多列上进行搜索
cimsBid [cimsBid ['CVtype'] =='32 FT']。groupby('L1Name')。nunique()
为我提供了所有L1名称的数据透视表。
cimsBid [cimsBid ['CVtype'] =='32 FT',cimsBid ['SCity'] =='Chennai']。groupby('L1Name')。nunique()
给我以下错误消息:
名称:SCity,长度:22001,dtype:bool)'是无效密钥
预期输出为:{'f1','f2'}
答案 0 :(得分:1)
将boolean indexing
与()
一起使用,并通过&
或|
链接条件:
#filter by & for bitwise AND
df = cimsBid[(cimsBid['CVtype']=='32 FT') & (cimsBid['SCity']=='Chennai')]
#filter by | for bitwise OR
#df = cimsBid[(cimsBid['CVtype']=='32 FT') | (cimsBid['SCity']=='Chennai')]
out = df.groupby('L1Name').nunique()