通过 ndarray 查询熊猫数据框

时间:2021-07-30 08:12:37

标签: python pandas dataframe numpy

我有一个包含 4 列的颜色数据框和一个 [3,] 数组

index = ["color","R", "G", "B"] # index as csv file definition
colors_csv = read_csv(csv_path , names=index, header=None)
colors = [[159 147 134][252 252 252][ 75  81  75][229 195 184]] # sample RGB data

我想从colors_csv获取一个新的子数据框,在R、G、B列中出现所有colors

到目前为止,使用 .loc 属性将返回一个正确的列表,但包含我无法遍历并获取新数据帧的连接项

# query with array of colors 
for i in range(len(colors)):
    aaaa = ([colors_csv.loc[(colors_csv['R'] == colors[i][0]) & 
        (colors_csv['G'] == colors[i][1]) & (colors_csv['B'] == colors[i][2])]])
    print(aaaa) # how to have all these aaaa thorough loop as one dataframe 

我想可能有一行魔术代码可以完成这项工作:)

感谢任何帮助

1 个答案:

答案 0 :(得分:2)

使用 merge 和所有列的默认合并,其中 DataFrame 从 RGB 数据创建:

colors_csv = read_csv(csv_path , names=index, header=None)

out = colors_csv.merge(pd.DataFrame(colors, columns=["R", "G", "B"]))