当列位于csv和 Dataframe 中时,panda.drop(columns=[])返回KeyError

r7knjye2  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(167)

我正在尝试从csv导入市场数据来运行一些回溯测试。

我写了下面的代码:

import pandas as pd
import numpy as np

df = pd.read_csv("30mindata.csv")
df = df.drop(columns=['Volume', 'NumberOfTrades', 'BidVolume', 'AskVolume'])
print(df)

我得到错误:
关键字错误:“在坐标轴中找不到['成交量','交易数量','出价成交量','询问成交量']”
当我删除包含drop()的代码行时, Dataframe 打印如下:

Date       Time     Open     High      Low     Last   Volume   NumberOfTrades   BidVolume   AskVolume
0      2018/2/18   14:00:00  2734.50  2741.00  2734.00  2739.75     5304             2787        2299        3005
1      2018/2/18   14:30:00  2739.75  2741.00  2739.25  2740.25     1402              815         648         754
2      2018/2/18   15:00:00  2740.25  2743.50  2739.25  2742.00     4536             2301        2074        2462
3      2018/2/18   15:30:00  2742.25  2744.75  2742.25  2744.00     4102             1826        1949        2153
4      2018/2/18   16:00:00  2744.00  2744.25  2742.25  2742.25     2492             1113        1551         941
...          ...        ...      ...      ...      ...      ...      ...              ...         ...         ...
59074  2023/2/17   10:30:00  4076.25  4088.00  4076.00  4086.50    92507            54379       44917       47590
59075  2023/2/17   11:00:00  4086.50  4090.50  4079.25  4081.00   107233            67968       55784       51449
59076  2023/2/17   11:30:00  4081.00  4090.50  4079.50  4088.25   171507            92705       86022       85485
59077  2023/2/17   12:00:00  4088.00  4089.00  4085.25  4086.00    41032            17210       21176       19856
59078  2023/2/17   12:30:00  4086.25  4088.00  4085.25  4085.75     5164             2922        2818        2346

我有另一个文件,它使用pd.read_csv()df.drop(columns=[])的完全相同的格式,工作正常。我尝试了df.loc[:, 'Volume'],得到了相同的KeyError,显示'Volume' was not found in the axis。我真的不明白,如果没有.drop()函数,标签在 Dataframe 中获得正确输出时,为什么没有标签

y1aodyip

y1aodyip1#

很可能在列名称中有空格。
尝试执行以下操作删除这些空格...

import pandas as pd

df = pd.read_csv("30mindata.csv")
df.columns = [col.strip() for col in df.columns]

然后尝试像以前一样删除列

相关问题