在这里的第一篇文章,我正在尝试在Excel文件中查找值的总数。因此,在导入文件后,我需要运行一个条件,该条件是对除0以外的所有值进行计数,并且在找到0的情况下将其设为空白。
> df6 = df5.append(df5.ne(0).sum().rename('Final Value'))
我尝试了上面的方法,但是不能正常工作,它也在计算列名,我只需要计算浮点值。
演示数据框:
0 1 2 3
ID_REF 1007_s 1053_a 117_at 121_at
GSM95473 0.08277 0.00874 0.00363 0.01877
GSM95474 0.09503 0.00592 0.00352 0
GSM95475 0.08486 0.00678 0.00386 0.01973
GSM95476 0.08105 0.00913 0.00306 0.01801
GSM95477 0.00000 0.00812 0.00428 0
GSM95478 0.07615 0.00777 0.00438 0.01799
GSM95479 0 0.00508 1 0
GSM95480 0.08499 0.00442 0.00298 0.01897
GSM95481 0.08893 0.00734 0.00204 0
0 1 2 3 ID_REF 1007_s 1053_a 117_at 121_at
这些是列名和索引值,在计数时需要忽略。
输出在计数后应如下所示:
决赛8 9 9 5
答案 0 :(得分:0)
如果只需要计数,但更改数据框中的值,则可以使用applymap
方法将函数应用于数据框中的每个单元格。首先创建一个检查浮点的函数:
def floatcheck(value):
if isinstance(value, float):
return 1
else:
return 0
然后将其应用于您的数据框:
df6 = df5.applymap(floatcheck)
如果值是浮点数,则将创建一个数据框,其值为1;否则为0。然后,您可以应用sum
方法:
df7 = df6.append(df6.sum().rename("Final Value"))
答案 1 :(得分:0)
我能够解决问题,所以这里是:
df5 = df4.append(pd.DataFrame(dict(((df4[1:] != 1) & (df4[1:] != 0)).sum()), index=['Final']))
df5.columns = df4.columns
went = df5.to_csv("output3.csv")
我所做的是我更改了起始索引,所以我没有计算第一位字母数字的行,然后我才对其进行了比较。
感谢您的回复。