pandas - 如何根据它们的数量删除数据框中的大量列?
问题描述
我有一个有 60 列的数据框。列的名称是年份,分别命名为 1960.0、1961.0......2010.0。我想删除从 1960 年到 2006 年的列。这是我迄今为止尝试过的:
a = list(map(str,map(float,range(1960,2006))))
gdp = gdp.drop(a,axis=1)
gdp
当我运行代码时,它显示:
KeyError: "['1960.0' '1961.0' '1962.0' '1963.0' '1964.0' '1965.0' '1966.0' '1967.0'\n '1968.0' '1969.0' '1970.0' '1971.0' '1972.0' '1973.0' '1974.0' '1975.0'\n '1976.0' '1977.0' '1978.0' '1979.0' '1980.0' '1981.0' '1982.0' '1983.0'\n '1984.0' '1985.0' '1986.0' '1987.0' '1988.0' '1989.0' '1990.0' '1991.0'\n '1992.0' '1993.0' '1994.0' '1995.0' '1996.0' '1997.0' '1998.0' '1999.0'\n '2000.0' '2001.0' '2002.0' '2003.0' '2004.0' '2005.0'] not found in axis"
我认为 \n 在这里干扰,但我不知道如何使它工作。有什么帮助吗?列的标题是 1960.0、1961.0、....2010.0。但它仍然不起作用。
解决方案
我认为你需要删除浮点数,而不是字符串,所以删除转换为字符串:
a = list(map(float,range(1960,2006)))
#or
#a = list(range(1960,2006))
gdp = gdp.drop(a,axis=1)
或者:
gdp = gdp[:, ~gdp.columns.isin(a)]
推荐阅读
- python - 运行binance api的问题
- javascript - 如何在 div 中加载网页
- android - 尝试使用 Retrofit 发出获取请求时无法为类 java.lang.Object 创建调用适配器
- python - 是其他两个列表之间的列表
- javascript - 如何定位 JSON 对象中的特定键,然后按该键数组中的 id 匹配?
- reactjs - 自定义挂钩上的无效挂钩调用
- javascript - react js中点击按钮后如何模糊背景
- reactjs - 在打字稿 nextjs 中使用 ref
- javascript - 获取多个异步 url 数据,然后对结果进行操作(tampermonkey 脚本)
- swagger - 如何在 Swagger-jsdoc 中安排端点和类别?