如何排除索引元组数据帧中的零数据

2024-04-19 12:18:07 发布

您现在位置:Python中文网/ 问答频道 /正文

All:我试图删除元组数据帧中的零数据,但做不到。你能帮我个忙吗?你知道吗

我的代码:

mylist = [[0 for y in xrange(0, 10, 1)] for x in xrange(0, 10, 1)]
for i in xrange(0, 10, 2):
    for j in xrange(0, 10, 2):
        mylist[i][j] = '%s,%s'%(i,j)

print mylist

df = pd.DataFrame(mylist)

print df

我想创建一个(x,y)坐标系。所述原点是(0,0),(x,y)的步长是(2,4)。我想创建一个10x10的cooridnate列表,比如(0,0),(2,0)…(4,0)直到(2*x,0),然后循环到y(4,0),(4,2)…(4,2*x)。再次感谢你的回答。你知道吗


Tags: 数据代码indataframedfforallpd
1条回答
网友
1楼 · 发布于 2024-04-19 12:18:07

最新回复: 首先,删除所有零的数组(在for循环之后)。你知道吗

mylist = [x for x in mylist if not all([val == 0 for val in x])]

然后,删除剩余数组中存在的零。你知道吗

mylist = [[v for v in x if v != 0] for x in mylist]

这将创建以下内容:[0,0',0,2',0,4',0,6',0,8'],['2,0',2,2',2,4',2,6',2,8'],['4,0',4,2',4,4',4,6',4,8'],['6,0',6,2',6,4',6,6',6,8'],['8,0',8,2',8,4',8,6',8,8']。你知道吗

您也可以将这两个步骤合并为一个步骤。可能会稍微节省时间,但看起来有点乱。你知道吗

[[v for v in x if v!=0] for x in mylist if not all([val==0 for val in x])] 

要遍历代码,第一行创建一个数组,数组中填充0。然后有一个for循环,位于xrange(0, 10, 2)。你知道吗

您已经将外部for循环的步长设置为2。这意味着它将在mylist中的每个其他数组上操作。你知道吗

内部for循环的step参数也是2。因此,它将只对您所在的特定数组中的其他每个值进行操作。你知道吗

如果希望用%s,%s字符串替换最初创建的每个零,只需将每个for循环的最后一个参数更改为1。(即...xrange(0, 10, 1)

相关问题 更多 >