Python-重命名列后出现分段错误?
因此,在pandas中创建了一个数据帧之后,我有一个函数可以将头大写。但是当我尝试在大写后访问数据帧信息时,我得到了一个分段错误。如果我在应用函数之前尝试访问它,我没有任何问题。我可能做错了什么Python-重命名列后出现分段错误?,python,function,pandas,Python,Function,Pandas,因此,在pandas中创建了一个数据帧之后,我有一个函数可以将头大写。但是当我尝试在大写后访问数据帧信息时,我得到了一个分段错误。如果我在应用函数之前尝试访问它,我没有任何问题。我可能做错了什么 reader = pd.read_csv(inFile) def capitalize_headers(df): for i in range(len(list(df.columns.values))): df.columns.values[i] = (df.columns.v
reader = pd.read_csv(inFile)
def capitalize_headers(df):
for i in range(len(list(df.columns.values))):
df.columns.values[i] = (df.columns.values[i]).upper()
capitalize_headers(reader)
print reader['ColumnName']
如果将所有列名都大写,则访问包含小写字符的列将抛出错误 具体来说,这条线
df.columns.values[i] = (df.columns.values[i]).upper()
将'columnname'
转换为'columnname'
。Pandas中的列访问区分大小写,因此现在可以使用df['COLUMNNAME']
访问该列
另外,这里有一种更有效的/类似于python的方法来使用
谢谢你的帮助!对不起,我说得很糟糕。我确实尝试过检查['COLUMNNAME',这给了我同样的错误。除了事实上,因为我已经发布了这篇文章并一直在处理它,我的错误已经切换到KeyError:“COLUMNNAME”虽然我仍然有分段错误,但如果我尝试打印DataFrame,实际上,好的,一旦我实现了你的大写函数,一切都正常了!但我必须将它改为df.columns.to_series().capitalize()才能让它工作。再次感谢您的帮助@如果这解决了问题,请接受答案。这使得人们只能找到开放的问题。
df.columns = df.columns.str.capitalize()