我有一个包含 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
我想可能有一行魔术代码可以完成这项工作:)
感谢任何帮助
答案 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"]))