我试图研究数据中有一个零值的概率,我开发了一个代码,当另一列数据为零时,输出一列数据的值,这正是我需要的。但是,对于577by29数据帧中的每一列和所有其他28列都必须这样做是很困难的,所以我决定创建一个for循环,在我有以下内容的地方为我实现这一点:
import numpy as np
import pandas as pd
allchan = pd.read_csv('allchan.csv',delimiter = ' ')
allchanarray = np.array(allchan)
dfallchan = pd.DataFrame(allchanarray,range(1,578),dtype=float)
y = pd.DataFrame()
x = pd.DataFrame()
for n in range(0,29):
x[n] = dfallchan[(dfallchan[0]>0) & (dfallchan[n]==0)][0]
y[n] = x[n].count()
x.to_excel('n.xlsx', index=False, sheet_name='ValForOtherZero')
y.to_excel('v.xlsx', index=False, sheet_name='CountOfZeroVlas')
问题在于,由于某种原因,循环可以正确地穿过这些线:
^{pr2}$但对于第二种情况,它重复n=6的值:
(dfallchan[n]==0)
代码的输出应该返回第一个通道的不同值,因为0在我的输入文件中是随机分布的,但是我的输出对于数据来说是正确的,直到第6列-因为我的列(0-5)应该是空的-在那里它重复所有其他列的输出! 输出: output 1
您可以看到代码循环正确,因为输出数据帧有n=29列,但对于上面指定的条件则不是。在
请帮忙,谢谢!在
终于拿到了!在
这个代码正是我想要的!在
这样会更有效率。在
在这里,我首先创建一个列表列表并将所有值附加到其中。最后,我创建数据帧并将其转换。在
相关问题 更多 >
编程相关推荐