python - 用熊猫分组行时如何屏蔽值?
问题描述
我想获取文件中每 7 行列的平均值,不包括平均值特定值(即 9999 和 0)
该文件的样本是
1 567
2 -9999
3 98
4 77
5 0
6 89
7 77
8 567
9 -9999
10 87
11 0
12 10
13 79
14 75
我得到每 7 行的平均值如下:
df=pd.read_csv(e,sep='\t',usecols=[1],skiprows=(0),header=None)
data_mean=df.groupby(np.arange(len(df))//7).mean()
data_mean.index=data_week.index+1
data_mean.to_csv(outfile,sep="\t",header=False)
如果我只想获得整列的平均值并使用我会做的掩码
data_mean = df.mask(df.isin([-9999, 0])).mean(1) #to exclude 0 and -9999
我如何在第一个代码中使用掩码?
解决方案
您可以将 -9999 和 0 替换为 NaN:
df[df.isin([-9999, 0])] = np.NaN
然后应用您的第一个代码:
>>> df.groupby(np.arange(len(df))//7).mean()
1
0 181.6
1 163.6
推荐阅读
- google-ad-manager - Google Ads - 第二个附加电话信息已获批准,但未显示任何展示
- php - 非信息从我的颤振应用程序插入到我的数据库中,但应用程序运行良好
- java - 我可以创建一个春豆作为我的黄瓜步骤定义的一部分吗?
- elasticsearch - Logstash 弹性搜索输出的 document_id 不正确
- go - Gorm BeforeCreate 钩子无法生成 UUID
- scapy - 使用 scapy 解析 pcap 文件
- android - 将 Android 应用程序迁移到 CI 和签名问题
- c++ - 在 C++ 中打印链接列表时出错?
- r - 从特定列创建 varSelectInput
- winapi - 无法在win32的属性页中更改状态栏控件的高度