2024-05-13 13:05:44 发布
网友
某个数据帧与以下数据帧有类似的中断:
import pandas as pd df = pd.DataFrame({'name': ['John', 'Elvis', 'Gerrard', 'Pitty'], 'age': [22,23,24,25], 'document': [111,222,333,4444]})
如何使筛选器仅返回文档列中的值只有3位的行?你知道吗
log
df.query('2 <= log10(document) < 3') name age document 0 John 22 111 1 Elvis 23 222 2 Gerrard 24 333
df = pd.DataFrame({ 'name': ['John', 'Elvis', 'Gerrard', 'Pitty'], 'age': [22, 23, 24, 25], 'document': [11, 222, 999, 1000] }) df name age document 0 John 22 11 # 2 digit number 1 Elvis 23 222 # 3 digit number 2 Gerrard 24 999 # 3 digit number | edge case 3 Pitty 25 1000 # 4 digit number | edge case
让我们只得到三位数
df.query('2 <= log10(document) < 3') name age document 1 Elvis 23 222 2 Gerrard 24 999
尝试//返回1000的除数,因为是3位数,所以除数应该是0
df[df.document//1000==0] Out[474]: name age document 0 John 22 111 1 Elvis 23 222 2 Gerrard 24 333
我们转换成str,然后计算len
str
len
df[df.document.astype(str).str.len().eq(3)] Out[476]: name age document 0 John 22 111 1 Elvis 23 222 2 Gerrard 24 333
更新
df[df.document.astype(str).str.split('.').str[0].str.len().eq(3)]
df[df.document.apply(lambda x: len(str(x)) == 3)]
log
扩展示例
让我们只得到三位数
尝试//返回1000的除数,因为是3位数,所以除数应该是0
我们转换成
str
,然后计算len
更新
相关问题 更多 >
编程相关推荐