簡體   English   中英

將列從float轉換為int時收到KeyError

[英]Receiving KeyError when converting a column from float to int

使用read_csv創建了一個熊貓數據框。

然后,將第0列的列名從'Unnamed'更改為'Experiment_Number'

此列中的值是浮點數,我一直在嘗試使用以下方法將它們轉換為整數:

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

我收到此錯誤:

KeyError:“ Experiment_Number”

從昨天開始我一直在嘗試各種方法,例如

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

和許多其他變體。

有人可以幫忙嗎,我是新來的熊貓人,這簡直就是放棄:(

任何幫助將不勝感激

我以前曾用它來重命名該列:

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

這應該起作用了。 事實並非僅僅意味着您的列名中包含特殊字符/不可打印字符。

我可以使用df.rename提供另一個建議:

df = df.rename(columns={df.columns[0] : 'Experiment_Number'})

您可以在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)

dtype不是嚴格必需的,因為在這種情況下轉換器將覆蓋它,但是明智的做法是養成始終為輸入的每個字段提供dtype的習慣。 令人討厭的是,例如,pandas默認如何將整數視為浮點數。 另外,如果您指定了dtype,則以后可以不用擔心就刪除converters選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM