首页 > 解决方案 > 我怎样才能使这段代码更高效,即一两行?

问题描述

census_df = census_df.loc[((census_df['REGION'] >= 1) & (census_df['REGION'] <=2))]
census_df = census_df[census_df['CTYNAME'].str.match('Washington')]
census_df = census_df[census_df['POPESTIMATE2015'] > census_df['POPESTIMATE2014']]
census_df = census_df[['STNAME', 'CTYNAME']]
census_df

我知道必须有一种方法可以使用 . 我可以只使用“&”符号来连接前三行吗?

标签: pythonpandasdataframe

解决方案


使用 'query()' 可以为您节省大量空间。

census_df = census_df.query("                       \
                (1 <= REGION <= 2)                  \
              &  CTYNAME.str.match('Washington')    \ 
              & (POPESTIMATE2015 > POPESTIMATE2014)
          ")[['STNAME', 'CTYNAME']]

在一行中:

census_df = census_df.query("(1 <= REGION <= 2) & CTYNAME.str.match('Washington') & (POPESTIMATE2015 > POPESTIMATE2014)")[['STNAME', 'CTYNAME']]

推荐阅读