在概率研究的for循环中,为数据过滤选择一种变量类型是很困难的

2024-04-19 02:30:14 发布

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

我试图研究在我的数据中有一个零值的概率,我开发了一个代码,当一列数据的值为零时输出另一列数据的值,这就是我需要的。但是对于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()))

我想做的是将print语句中的每一项都赋给一列变量(数组、列表、DataFrame或series),这似乎是我正在努力解决的问题。然后使用something.to_excel将输出保存为Excel文件,然后更改要比较的列,依此类推。注意,代码的输出应该返回第一个通道(输入数据列)的不同值,因为零在我的输入文件中是随机分布的,每个输出列的长度应该不同。 请帮助我的代码,并向我解释为什么你使用一种类型的变量,而不是其他类型的

谢谢你!你知道吗


Tags: 文件csv数据代码importdataframeforas
1条回答
网友
1楼 · 发布于 2024-04-19 02:30:14

所以使用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翻转维度。你知道吗

因此,您可以进一步更改以添加从第1列筛选的值的数目。你知道吗

相关问题 更多 >