我想将excel公式=COUNTIF(A4:A11,A4)
转换为python代码。
这里A4
是开始行,A11
是我选择的结束行,我想查找来自A4
的单元格中A4
单元格中出现的值的次数行到A11
。
我已将excel文件中的数据加载到pandas DataFrame中。
答案 0 :(得分:0)
这是一个示例数据框。
In [307]: df
Out[307]:
a
0 0
1 1
2 2
3 3
4 1
5 1
6 4
7 5
8 1
9 1
10 5
11 0
12 0
13 0
14 1
In [308]: df[df['a'] == df['a'].iloc[4]]['a'].loc[4:11].count()
Out[308]: 4
或者,
In [315]: df[df['a'] == df['a'].iloc[4]].loc[4:11, 'a'].count()
Out[315]: 4
或者,
In [323]: df.loc[4:11].query('a== @df.a.iloc[4]')['a'].count()
Out[323]: 4
或者,
In [319]: df.loc[4:11, 'a'].eq(df.a.iloc[4]).sum()
Out[319]: 4
答案 1 :(得分:0)
让我们先填充DataFrame(您可能正在使用read_csv或其他东西)。
int isAbsolute(const char *str){
return (str[0] == '/');
}
您可以使用
访问数据框的一部分df = pd.DataFrame({"a": [1, 0, 2, 3, 1, 1, 3, 5,1, 0, 1, 3, 7, 9]})
从这里开始,我们希望仅限制与df[4:11+1] # does the same thing as `A4:A11` in terms of grabbing only those rows
匹配的值。我们这样做
A4
然后,我们想要计算这些事件:
df[4:11+1][df["a"] == df["a"][4]]
答案 2 :(得分:0)
使用numpy
np.count_nonzero(np.in1d(df['a'][4:12],df['a'][4]))