计算 pandas 列中的正值

新手上路,请多包涵

我有一个包含多列数字的表格。我正在尝试获取此表的统计信息,但我一直在尝试计算单列中各行之间的正增长量。

我有的

A  |  B  |  C
--------------
1  |  5  |  2
5  |  2  |  7
2  |  2  |  10
18 |  0  |  14

我正在尝试为我的问题编写的功能

def countIncreace(data,value):  #not complete but what I have so far
  print( data[value].pct_change().fillna(0).count( > 0) )

pct_change() 返回该索引处的数字与它之前行中的数字相比的百分比表和 fillna(0) 替换图表的 NaNpct_change() 用 0 创建

我想要的输出:

 [IN]>countIncreace(df, 'A'):
[OUT]> 2
[IN]>countIncreace(df, 'B'):
[OUT]> 0
[IN]>countIncreace(df, 'C'):
[OUT]> 3

我在获取正值计数的函数中缺少什么

原文由 CSstudent 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 648
2 个回答

很接近!除了您尝试计算大于 0 的百分比变化的方式外,一切都是正确的。这是一种方法

def countIncrease(df,column):
    print sum(df[column].pct_change().fillna(0) > 0)

原文由 mitoRibo 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以使用 pd.Series 方法 gt (大于)和 sum

 df[column].pct_change().fillna(0).gt(0).sum()

一般来说,这比使用 Pandas 系列/NumPy 数组的内置函数更好。

原文由 jpp 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题