因此,在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']
发布于 2016-07-21 18:53:40
如果所有列名都是大写的,那么访问包含小写字符的列将抛出错误。
具体地说,这行
df.columns.values[i] = (df.columns.values[i]).upper()
将'columnname'
转换为'COLUMNNAME'
。Pandas中的列访问是区分大小写的,所以现在可以用df['COLUMNNAME']
访问该列。
另外,这里有一种使用Pandas str
methods的更有效/pythonic式的方法。
df.columns = df.columns.str.capitalize()
https://stackoverflow.com/questions/38512205
复制