KeyError:“[['',]]都不在[列]”pandas python中

2024-09-24 22:30:37 发布

您现在位置:Python中文网/ 问答频道 /正文

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

这是我的代码:

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]”'

我尝试过的:

  • 我试着在读取文件时用index 0加上header
  • 我试图用以下代码重命名列:

    df.rename(columns=df.iloc[0],inplace=True)
    
  • 我也试过:

    df.columns = df.iloc[1]
    df=df.reindex(df.index.drop(0))
    
  • 也尝试了在这个link

以上都没有解决这个问题。


Tags: columns数据代码importpandasdfreadindex
3条回答

从你贴出的照片来看,你好像用空白作为分隔符。pd.read_csv将使用,作为默认分隔符进行读取,因此必须显式声明它:

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

只需编写代码创建一个新的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')

您可以尝试执行以下操作:

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

如果数据中有空格,则会得到一个错误,因此delim_whitespace将包含这些空格,以便在数据中有空格时删除它们。

相关问题 更多 >