如何在Pandas中删除列?调用drop()时遇['DATE']未找到轴错误
问题分析与解决
问题根源
从打印的DataFrame结果能看到,数据列名是DATE,MCOILBRENTEU和DATE,PNGASEUUSDM,每行的日期与价格用逗号分隔,但你读取CSV时指定了delimiter=";",这导致Pandas把整行内容当成了单一列,根本不存在名为DATE的列,所以执行drop("DATE", axis=1)时会报错:
在轴中未找到['DATE']
修复步骤
1. 修正CSV读取的分隔符
你的CSV文件实际用逗号分隔,把delimiter=";"替换为delimiter=","(也可以直接省略该参数,因为pd.read_csv默认分隔符就是逗号)。
2. 正确使用drop方法
当设置inplace=True时,drop会直接修改原DataFrame,返回值为None,无需赋值给新变量;如果要保留原DataFrame,就去掉inplace=True,将返回的新DataFrame赋值给变量。
修改后的完整代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt path_brent = "/Users/alfredolucente/Documents/MCOILBRENTEU.csv" path_natgas = "/Users/alfredolucente/Documents/PNGASEUUSDM.csv" # 修正分隔符为逗号 brent_prices = pd.read_csv(path_brent, delimiter=",") natgas_prices = pd.read_csv(path_natgas, delimiter=",") print(brent_prices.head(10)) print(natgas_prices.head(10)) # 方式1:保留原DataFrame,返回新的DataFrame brent_prices_2 = brent_prices.drop("DATE", axis=1) print(brent_prices_2) # 方式2:直接修改原DataFrame,无需赋值 # brent_prices.drop("DATE", inplace=True, axis=1) # print(brent_prices)
内容的提问来源于stack exchange,提问作者Alfredo Lucente
相关产品推荐
相关产品推荐

