KeyError:“[['','']] 中没有一个在 [columns] 中”pandas python

Posted

技术标签:

【中文标题】KeyError:“[[\'\',\'\']] 中没有一个在 [columns] 中”pandas python【英文标题】:KeyError: "None of [['', '']] are in the [columns]" pandas pythonKeyError:“[['','']] 中没有一个在 [columns] 中”pandas python 【发布时间】:2019-01-29 07:25:51 【问题描述】:

我想在我的数据框中分割两列。

这是我的代码:

import pandas as pd
df = pd.read_csv('source.txt',header=0)
cidf=df.loc[:,['vocab','sumCI']]
print(cidf)

这是一个数据样本:

ID  vocab   sumCI   sumnextCI   new_diff
450      statu    3.0        0.0       3.0
391     provid    4.0        1.0       3.0
382  prescript    3.0        0.0       3.0
300   lymphoma    2.0        0.0       2.0
405      renew    2.0        0.0       2.0

**首先我得到了这个错误:**

KeyError: “None of [['', '']] are in the [columns]”'

我尝试过的:

我尝试在读取文件时将headerindex 0 放在一起,

我尝试使用此代码重命名列:

df.rename(columns=df.iloc[0],inplace=True)

我也试过这个:

df.columns = df.iloc[1]
df=df.reindex(df.index.drop(0))

在这个link也试过cmets

以上都没有解决问题。

【问题讨论】:

修改前请发print(df.columns) 【参考方案1】:

也许您的列名周围有空格,请仔细检查您的 csv 文件

【讨论】:

这也是使用 read_sql_query() 时需要注意的一点:表中的列名可以有前导或尾随空格。呃。【参考方案2】:

您可以尝试这样做:

pd.read_csv('source.txt',header=0, delim_whitespace=True)

如果您的数据中有任何空格,您将收到错误消息,因此包含delim_whitespace 以删除这些空格,以防它们在数据中。

【讨论】:

【参考方案3】:

只需编写代码即可创建新的 CSV 文件并使用新文件

 import numpy as np
 import pandas as pd
 import matplotlib.pyplot as plt
 pd.read_csv('source.txt',header=0, delim_whitespace=True)
 headers = ['ID','vocab','sumCI','sumnextCI','new_diff']
 df.columns = headers 
 df.to_csv('newsource.txt')

【讨论】:

【参考方案4】:

根据您发布的印刷品,您似乎有空格作为分隔符。 pd.read_csv 将使用 , 作为默认分隔符读取,因此您必须明确声明:

pd.read_csv('source.txt',header=0, delim_whitespace=True)

【讨论】:

以上是关于KeyError:“[['','']] 中没有一个在 [columns] 中”pandas python的主要内容,如果未能解决你的问题,请参考以下文章

Pytorch:“KeyError:在 DataLoader 工作进程 0 中捕获 KeyError。”

为啥 str(KeyError) 添加额外的引号?

为啥我收到此错误? KeyError:“没有”

KeyError : 0 熊猫

KeyError:'plotly_domain'

python3 日志检索异常抛出异常 raise KeyError(key),KeyError: 'formatters'