首页 > 解决方案 > ndarray 的 pandas 数据框查询

问题描述

我有一个包含 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 获取一个新的子数据框,其中所有出现colors在 R、G、B 列中

到目前为止,使用.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 

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

任何帮助表示赞赏

标签: pythonpandasdataframenumpy

解决方案


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

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

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

推荐阅读