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]”'
我尝试过的:
我尝试在读取文件时将header
与index 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。”
python3 日志检索异常抛出异常 raise KeyError(key),KeyError: 'formatters'