Python 3.x 当数据帧中的其他列中的条件匹配时,从一列中提取单元格
我有一个csv文件加载到数据帧中 。。。SCity、DCity、CVtype、L1Name 我想为SCity、DCity和CVType的特定组合提取L1Name 理想情况下,数据应该以列表的形式返回,这样我就可以使用每个返回值从数据帧中提取其他信息,比如SCity、DCity和CVType的其他(不匹配)值的每个L1Name的成本 例如,城市是“钦奈”,城市是“浦那”,类型是“32英尺”,我应该得到一个名字列表 f1 f2 f3 我不知道如何搜索多个列 cimsBid[cimsBid['CVtype']=='32英尺].groupby('L1Name').nunique() 给我一个所有L1名称的数据轴 cimsBid[cimsBid['CVtype']='32英尺',cimsBid['SCity']=='Chennai']。groupby('L1Name')。nunique() 给了我以下错误消息: 名称:SCity,长度:22001,数据类型:bool)“”是无效密钥 预期输出为:{'f1','f2'}与Python 3.x 当数据帧中的其他列中的条件匹配时,从一列中提取单元格,python-3.x,pandas,Python 3.x,Pandas,我有一个csv文件加载到数据帧中 。。。SCity、DCity、CVtype、L1Name 我想为SCity、DCity和CVType的特定组合提取L1Name 理想情况下,数据应该以列表的形式返回,这样我就可以使用每个返回值从数据帧中提取其他信息,比如SCity、DCity和CVType的其他(不匹配)值的每个L1Name的成本 例如,城市是“钦奈”,城市是“浦那”,类型是“32英尺”,我应该得到一个名字列表 f1 f2 f3 我不知道如何搜索多个列 cimsBid[cimsBid['CVty
()
一起使用,并通过&
或|
链接条件:
#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()
谢谢如何将输出作为L1Name列表而不是数据透视表大小打印?@user2338557是否需要
cimsBid。loc[(cimsBid['CVtype']=='32英尺')和(cimsBid['SCity']=='Chennai'),'L1Name']。唯一()。tolist()
?这也行!我试图在没有意识到GroupBy的输出不是数据帧的情况下组合分组,它是一个iterable GroupBy对象