Python 如何从列表中识别出现的坐标(x,y),并将其粘贴到数据框中

Python 如何从列表中识别出现的坐标(x,y),并将其粘贴到数据框中,python,python-3.x,pandas,dataframe,coordinates,Python,Python 3.x,Pandas,Dataframe,Coordinates,我有一个列表,有不同图像的不同坐标。我想创建一个有两列的数据框:坐标和值是我们能找到这个像素的次数(如果在整个列表中找不到,这个值必须是0;如果我们能找到它x次,这个值必须是一个具体的数字)。 我所做的是: p = (0,0) x = 0 y = 1 z = 0 d= {'Coordinates': [p], 'Value': [z]} df = pd.DataFrame(data=d) for _ in range(img.size[0]*img.size[1]-1): new_row

我有一个列表,有不同图像的不同坐标。我想创建一个有两列的数据框:坐标和值是我们能找到这个像素的次数(如果在整个列表中找不到,这个值必须是0;如果我们能找到它x次,这个值必须是一个具体的数字)。 我所做的是:

p = (0,0)
x = 0
y = 1
z = 0
d= {'Coordinates': [p], 'Value': [z]}
df = pd.DataFrame(data=d)
for _ in range(img.size[0]*img.size[1]-1):
    new_row = {"p":(x,y), "z":z}
    df = df.append(new_row, ignore_index = True)
    y = y+1
    if y = img.size[1]+1:
        y = 0
        x= x+1
print(df)
标记的像素位于列表列表中,该代码中应更改的是z值。 我想要得到的数据帧类似于:

我拥有的坐标列表的一个示例是:
谢谢你的帮助 您可以使用
计数器
获取计数不等于0的所有唯一像素,然后为了添加计数也为0的像素,您可以循环所有像素(0,0)。。。(max_x,max_y)并将其计数与计数器对象进行比较

import numpy as np
import pandas as pd
from collections import Counter
    
coordinates = [[(0,1),(0,2),(0,3)],[(0,1),(0,2),(1,1)],[(1,1),(2,2),(3,3)]]
# this should return a value of 2 for (0,1),(0,2),(1,1)
# value of 1 for (0,3),(2,2),(3,3)
# values of 0 for all other pixels from (0,0)... (3,3) not in coordinates

# flatten the list of coordinates
all_coordinates = [item for img in coordinates for item in img]
c = Counter(all_coordinates)

# you want to look at the counts for pixels (0,0), ... (3,3) in c
max_x = max([item[0] for item in all_coordinates])
max_y = max([item[1] for item in all_coordinates])
coordinates_dict = dict()
for i in range(max_x + 1):
    for j in range(max_y + 1):
        coordinates_dict.update({(i,j): c[(i,j)]})

df = pd.DataFrame(coordinates_dict.items(), columns=['Coordinates','Value'])

输出:

>>> df
   Coordinates  Value
0       (0, 0)      0
1       (0, 1)      2
2       (0, 2)      2
3       (0, 3)      1
4       (1, 0)      0
5       (1, 1)      2
6       (1, 2)      0
7       (1, 3)      0
8       (2, 0)      0
9       (2, 1)      0
10      (2, 2)      1
11      (2, 3)      0
12      (3, 0)      0
13      (3, 1)      0
14      (3, 2)      0
15      (3, 3)      1

我用熊猫来创建数据框和枕头来导入图像,从那里我得到了不同坐标的列表,你能举例说明列表中的像素是什么样的吗?像素在列表列表中是如何表示的?像素在类似:[[(x,y),(x,y)…][(x,y),(x,y)…]的列表中表示,您可以在我随附的foto中看到和示例。谢谢太棒了,太有用了!这是非常有用的,谢谢,但是你如何将列表中没有出现的坐标添加到这个列表中(该值为0),以便我以后可以创建热图?我的意思是,我想在坐标列中有一张照片像素坐标的完整列表。如果这张照片是1050*720756000个条目,大多数条目的vaue为0。非常感谢。我不知道这样说是否重要,但在列表中的每个列表中,你不会找到相同的坐标,因为每个坐标都表示像素。谢谢谢谢你的反馈——我会就此回复你的!您应该能够填写从(0,0)到(1050720)的坐标的所有缺失值。让我知道这是否对你有用~太棒了!谢谢你的帮助。我不知道如何告诉你我有多感激你。