【发布时间】:2019-12-09 20:23:29
【问题描述】:
我有一列,我想找到 10 到 100 之间的长度(例如)
len(data[ 10 < data['TAHSILAT_DEGISIM_DEGER'] <= 100] )
错误是: Series 的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
【问题讨论】:
标签: python pandas conditional-statements
我有一列,我想找到 10 到 100 之间的长度(例如)
len(data[ 10 < data['TAHSILAT_DEGISIM_DEGER'] <= 100] )
错误是: Series 的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。
【问题讨论】:
标签: python pandas conditional-statements
您的错误来自错误地使用具有多个条件的过滤器, 所以你可以使用:
len(data[ (10 < data['TAHSILAT_DEGISIM_DEGER']) & (data['TAHSILAT_DEGISIM_DEGER']<= 100]) )
【讨论】:
使用Series.between 和sum 仅计数True 值:
data['TAHSILAT_DEGISIM_DEGER'].between(10, 100, inclusive=False).sum()
或者你的解决方案:
len(data[data['TAHSILAT_DEGISIM_DEGER'].between(10, 100, inclusive=False)])
【讨论】:
使用系列数据类型docs of len() function的len()
data[ 10 < data['TAHSILAT_DEGISIM_DEGER'].str.len() <= 100]
或
data[(data['TAHSILAT_DEGISIM_DEGER'].str.len()) <= 100 & (data['TAHSILAT_DEGISIM_DEGER'].str.len())>10]
【讨论】: