代码之家  ›  专栏  ›  技术社区  ›  Gabriela Catalina

将列从浮点转换为int时接收KeyError

  •  2
  • Gabriela Catalina  · 技术社区  · 6 年前

    然后,我将第0列的列名从 'Unnamed' 'Experiment_Number' .

    这列中的值是浮点数,我一直在尝试使用以下方法将它们转换为整数:

    df['Experiment_Number'] = df['Experiment_Number'].astype(int)
    

    我发现这个错误:

    KeyError:“实验号”

    例如,从昨天开始,我一直在尝试各种方法

    df['Experiment_Number'] = df.astype({'Experiment_Number': int})
    

    和许多其他变体。

    有人能帮我一下吗,我是新使用熊猫的人,现在快要放弃了:(

    任何帮助都将不胜感激

    2 回复  |  直到 6 年前
        1
  •  3
  •   cs95    6 年前

    我之前曾使用此选项重命名该列:

    df.columns.values[0] = 'Experiment_Number'
    

    这本应该奏效的。事实并非如此,这只能说明列名中有特殊字符/无法打印的字符。

    df.rename :

    df = df.rename(columns={df.columns[0] : 'Experiment_Number'})
    
        2
  •  0
  •   user1416227    6 年前

    read_csv() 调用,然后重命名。如中所示

    df = pandas.read_csv(filename, 
                         dtype = {'Unnamed': 'float'}, # inform read_csv this field is float
                         converters = {'Unnamed': int}) # apply the int() function
    df.rename(columns = {'Unnamed' : 'Experiment_Number'}, inplace=True)