我正在尝试研究数据中值为零的概率,并且我开发了一个代码,当另一列数据为零时,该代码输出一列数据的值,这正是我需要的。但是必须为每一列与我的 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)
for n in range(0,29):
print((dfallchan[(dfallchan[0]>0) & (dfallchan[n]==0)][0]))
print((dfallchan[(dfallchan[0]>0) & (dfallchan[n]==0)][0].count()))
我想做的是在某种变量(数组、列表、数据帧或系列(的列中分配打印语句中的每个内容,我似乎正在努力解决。 然后使用something.to_excel
将输出另存为 Excel 文件,然后再更改要比较的列,依此类推。 请注意,代码的输出应返回第一个通道 (输入数据列(,因为零在我的输入文件中随机分布,并且每个输出列应具有不同的长度。 请帮助我编写代码并向我解释为什么您使用一种类型的变量而不是另一种变量
谢谢!
因此,您可以使用pandas
的以下功能。
data = [[1,2,3], [4,5], [1,2,3,4,5,6,7]]
df = pd.DataFrame(data).transpose()
df
0 1 2
0 1.0 4.0 1.0
1 2.0 5.0 2.0
2 3.0 NaN 3.0
3 NaN NaN 4.0
4 NaN NaN 5.0
5 NaN NaN 6.0
6 NaN NaN 7.0
变量data
是列表列表。在您的情况下,您可以拥有第一列的过滤值列表。函数transpose
翻转尺寸。
因此,您可以进行进一步的更改以添加从第一列过滤的值的数量。