Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-重命名列后出现分段错误?_Python_Function_Pandas - Fatal编程技术网

Python-重命名列后出现分段错误?

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

因此,在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.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()