据我所知,当我更改列名时,将inplace设置为true或false的决定取决于我是想改变原始数据帧(inplace=True
)还是创建新的数据帧对象(inplace=False
)
我在xlsx中有一个源文件,其中数据帧所需的列名位于第2行。我需要更改其中一个列名,使其与分析的其余部分一致
df_original = pd.read_excel('filepath.xlsx', sheet_name = "LookUpReferences", skiprows = 1)
df_original = df_original.rename(columns = {'WrongName': 'CorrectName'}, inplace = True)
当我这样做,例如,通过head()
函数查看输出时,我得到
AttributeError: 'NoneType' object has no attribute 'head'
我可以通过创建一个新的数据帧并设置inplace=False
来解决这个问题,即
df_new = df_original.rename(columns = {'WrongName': 'CorrectName'}, inplace = False)
但这会变得很麻烦。所以我试图理解为什么inplace=True
没有按我希望的方式工作。它是read_excel()的skiprows部分吗???这是我能想到为什么我得到一个非类型的唯一原因。但是,非常像乔恩·斯诺,我什么都不知道
谢谢
正如您自己所说,
inplace=True
改变原始数据帧,因此您不必重新分配它。 另一方面,默认设置为inplace=False
,因此您可以重命名(并重新分配)为:我不确定这对你来说是否太麻烦了
此外,正如这里解释的inplace performance,不能保证就地操作运行得更快
相关问题 更多 >
编程相关推荐