Python 如何获取/检查df.query()中的行位数?
我有一个数据帧df,如:Python 如何获取/检查df.query()中的行位数?,python,pandas,filter,digits,Python,Pandas,Filter,Digits,我有一个数据帧df,如: number | col1 123 | a 1234 | b 567 | c 我想计算“number”列中有多少行的数字大于或小于3位。 列的名称为dtype=int64 当我尝试时: count = df.query( """ ... 'some other filters' or \ MSN.str.len() != 3 """ ) print(count)
number | col1
123 | a
1234 | b
567 | c
我想计算“number”列中有多少行的数字大于或小于3位。
列的名称为dtype=int64
当我尝试时:
count = df.query(
"""
... 'some other filters' or \
MSN.str.len() != 3
"""
)
print(count)
我得到:
AttributeError:只能对字符串值使用.str访问器
正在尝试使用转换为str()
ValueError:“str”不是受支持的函数
转换为字符串也会计算负号,所以这不是一个真正的解决方案
删除len=3的检查将删除所有错误消息并打印计数
如何计算数据帧查询中的数字而不转换为str和apply(对于我的行数来说太慢了)
给予
print(df[(df['numLen'])>3和(df['number'])>0.count())
用于长度大于3的项目
或者df[(df['number'])>=100].count()
这将为您提供所有超过3位的数字
In [25]: df = pd.DataFrame({'number':[123, 25, 1234, -165, -99, 567], 'col' : ['a','b','c', 'd', 'e', 'f']})
In [26]: df
Out[26]:
number col
0 123 a
1 25 b
2 1234 c
3 -165 d
4 -99 e
5 567 f
In [27]: df.query("100 <= abs(number) <= 999")['number'].size
Out[27]: 3
给予
print(df[(df['numLen'])>3和(df['number'])>0.count())
用于长度大于3的项目
或df[(df['number'])>=100].count()
这将为您提供所有在[25]中超过3位的数字:df=pd.DataFrame({'number':[123,251234,-165,-99567],'col':['a','b','c','d','e','f']))
In [25]: df = pd.DataFrame({'number':[123, 25, 1234, -165, -99, 567], 'col' : ['a','b','c', 'd', 'e', 'f']})
In [26]: df
Out[26]:
number col
0 123 a
1 25 b
2 1234 c
3 -165 d
4 -99 e
5 567 f
In [27]: df.query("100 <= abs(number) <= 999")['number'].size
Out[27]: 3
In[26]:df
出[26]:
数字列
0 123 a
125B
21234 c
3-165 d
4-99 e
5567 f
在[27]:df.query中(“在[25]:df=pd.DataFrame({'number':[123,251234,-165,-99567],'col':['a','b','c','d','e','f'])中的100
In[26]:df
出[26]:
数字列
0 123 a
125B
21234 c
3-165 d
4-99 e
5567 f
在[27]中:df.query(“100这是使用apply,这对我的数据集来说太长了。它还将计算负号,这是错误的。将简单的答案放在最后,它将给出长度超过3的所有数字,没有负数,只需计算超过100的数字…这是使用apply,这对我的数据集来说太长了。它还将计算负数这是错误的。把简单的答案放在最后,它会给你所有长度超过3的数字,没有负数,只要数一数超过100的数字。。。
number col numLen
0 123 a 3
1 1234 b 4
2 567 c 3
In [25]: df = pd.DataFrame({'number':[123, 25, 1234, -165, -99, 567], 'col' : ['a','b','c', 'd', 'e', 'f']})
In [26]: df
Out[26]:
number col
0 123 a
1 25 b
2 1234 c
3 -165 d
4 -99 e
5 567 f
In [27]: df.query("100 <= abs(number) <= 999")['number'].size
Out[27]: 3