首页 > 解决方案 > 如何根据标题值删除列?

问题描述

我正在尝试根据其列标题删除列。我想使用 for 循环和 if 条件。日期范围是从 1850 到 2100。下面是我的数据框 df 的示例

Indicator Code  1970    1971    1972    1973    1974    1975    1976    1977    1978    1979    1980    
DTFTS             x      x        x       x       x       x       x       x       x       x       x      
DTHUYZ            x      x        x       x       x       x       x       x       x       x       x       
YHTS              x      x        x       x       x       x       x       x       x       x       x 

例如,我想使用 for 和 if 保留从 1980 年到 1990 年的列。这是我尝试过的,但它不起作用:

columns_to_keep = list(range(1980,1990))

for columns in df :
  if df[~df.columns.isin(columns_to_keep)] :
      df.drop(columns)

有什么建议可以帮助我吗?

谢谢!

标签: python

解决方案


让我知道这段代码是否有效:

columns_to_keep = list(range(1980,1990))

for column in df.columns:
    if int(column) not in columns_to_keep:
        df.drop(column,axis=1,inplace=True)

推荐阅读