我有一个包含多列数字的表格。我正在尝试获取该表的统计信息,并且试图统计单个列中各行之间的正增长量。
我有什么
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)
替换了{{ 1}}使用0
我想要的输出:
NaN
在获取正值计数时我缺少什么功能
答案 0 :(得分:2)
您可以使用pd.Series
个方法gt
(大于)和sum
:
df[column].pct_change().fillna(0).gt(0).sum()
通常,与将内置函数与Pandas系列/ NumPy数组一起使用相比,这是一个更好的主意。
答案 1 :(得分:1)
非常接近!一切正确,除了您尝试计算大于0的变化百分比的方法。这是一种方法
def countIncrease(df,column):
print sum(df[column].pct_change().fillna(0) > 0)
答案 2 :(得分:0)
您可以使用DataFrame.loc
len(df.loc[df.A > 0]
示例:
df = pd.DataFrame(np.random.randint(-10, 10, (3, 3)), columns=list('ABC'))
print(len(df.loc[df.A > 0]))
或者只是[
]
:
print(len(df[df.A > 0]))
答案 3 :(得分:0)
我喜欢使用 query ,它更容易阅读。
len(df.query('A > 0'))