我正在尝试使用Python/Pandas对下面的示例数据集应用一些在R中通常很容易完成的操作。你知道吗
S1 S2 S3 S4 S5 S6 S7 S8 S9 S10
QUER.MAC 9 8 3 5 6 0 5 0 0 0
QUER.VEL 8 9 8 7 0 0 0 0 0 0
CARY.OVA 6 6 2 7 0 2 0 0 0 0
PRUN.SER 3 5 6 6 6 4 5 0 4 1
QUER.ALB 5 4 9 9 7 7 4 6 0 2
JUGL.NIG 2 0 0 0 3 5 6 4 3 0
QUER.RUB 3 4 0 6 9 8 7 6 4 3
JUGL.CIN 0 0 5 0 2 0 0 2 0 2
ULMU.AME 2 2 4 5 6 0 5 0 2 5
TILI.AME 0 0 0 0 2 7 6 6 7 6
ULMU.RUB 4 0 2 2 5 7 8 8 8 7
CARY.COR 0 0 0 0 0 5 6 4 0 3
OSTR.VIR 0 0 0 0 0 0 7 4 6 5
ACER.SAC 0 0 0 0 0 5 4 8 8 9
从文本文件中读取数据后
import numpy as np
import pandas as pd
df = pd.read_csv("sample.txt", header=0, index_col=0, delimiter=' ')
我想:(1)求每列的值大于零的频率;(2)求每列的值之和;(3)求每列的最大值。你知道吗
我设法获得(2)使用
N = df.apply(lambda x: np.sum(x))
但不知道如何实现(1)和(3)。你知道吗
我需要不依赖于列名称的通用解决方案,因为我想将这些操作应用于任意数量的类似矩阵(当然,这些矩阵将具有不同的标签和列/行数)。你知道吗
提前感谢您的任何提示和建议。你知道吗
可以使用
mask
和describe
按列获取一组统计信息。你知道吗输出:
使用mask的原因是
count
统计所有非NaN值,因此将<;or=屏蔽为0将使count
的值为NaN。你知道吗最后,我们还可以使用
assign
添加“sum”:输出:
你的第一个
第二
第三
相关问题 更多 >
编程相关推荐