Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于dataframe中的多个列值选择行_Python_Pandas - Fatal编程技术网

Python 基于dataframe中的多个列值选择行

Python 基于dataframe中的多个列值选择行,python,pandas,Python,Pandas,我有一个熊猫数据帧df: import pandas as pd data = {"Name": ["AAAA", "BBBB"], "C1": [25, 12], "C2": [2, 1], "C3": [1, 10]} df = pd.DataFrame(data) df.set_index("Name") 打印时看起来像这样(供参考): 我想选择C1、C2和C3的值介于0和20之间的行 您能推荐一种优雅的方式来选择这些行吗?我认为下面应

我有一个
熊猫
数据帧
df

import pandas as pd

data = {"Name": ["AAAA", "BBBB"],
        "C1": [25, 12],
        "C2": [2, 1],
        "C3": [1, 10]}

df = pd.DataFrame(data)
df.set_index("Name")
打印时看起来像这样(供参考):

我想选择
C1
C2
C3
的值介于
0
20
之间的行


您能推荐一种优雅的方式来选择这些行吗?

我认为下面应该这样做,但它的优雅程度有待讨论

new_df = old_df[((old_df['C1'] > 0) & (old_df['C1'] < 20)) & ((old_df['C2'] > 0) & (old_df['C2'] < 20)) & ((old_df['C3'] > 0) & (old_df['C3'] < 20))]
new_-df=old_-df[((old_-df['C1']>0)和(old_-df['C2']>0)和(old_-df['C2']<20))和((old_-df['C3']>0)和(old_-df['C3']<20))]
较短版本:

In [65]:

df[(df>=0)&(df<=20)].dropna()
Out[65]:
   Name  C1  C2  C3
1  BBBB  12   1  10
[65]中的

df[(df>=0)&(df我喜欢使用df.query()来处理这类事情

df.query('C1>=0 and C1<=20 and C2>=0 and C2<=20 and C3>=0 and C3<=20')
df.query('C1>=0,C1=0,C2=0,C3
df.query(
“0

df.query(“0<@df<20”).dropna()
df中使用
@foo
。query
引用环境中的变量
foo

df.query('C1>=0 and C1<=20 and C2>=0 and C2<=20 and C3>=0 and C3<=20')