panda DataFrames 插入函数的说明

Clarification on the insert function of panda DataFrames

我有一个问题,我正在尝试更熟悉 python 和 pandas,我想知道为什么这不起作用:

list_features_countries = [features_AU, features_CA, features_UK, features_US, features_JP, features_DE, features_SW]

for x in list_features_countries:

    x = x.drop(columns=x.columns[0], axis=1, inplace=True)
    x = x.insert(0,'time_period', Eco_AU['time_period'])

(它给出了错误:AttributeError: 'NoneType' object has no attribute 'insert')

但是,这确实有效:

list_features_countries = [features_AU, features_CA, features_UK, features_US, features_JP, features_DE, features_SW]

 for x in list_features_countries
     x = x.drop(columns=x.columns[0], axis=1, inplace=True)

 for x in list_features_countries: 
     x = x.insert(0,'time_period', Eco_AU['time_period'])

所以基本上我尝试删除列表中每个数据框的第一列,然后添加另一个数据框的一列。

第一个变体的问题是参数 inplace=True。 这意味着现有数据帧 (x) 已就地更改,调用 x.drop(... inplace=True) returns None。 所以此时x被赋值为None,导致下一步报错

解决方案是删除 inplace=True 参数,以便 x.drop(...) 函数 returns 编辑的数据框:

x = x.drop(columns=x.columns[0], axis=1)
x = x.insert(0,'time_period', Eco_AU['time_period'])

或删除分配:

x.drop(columns=x.columns[0], axis=1, inplace=True)
x = x.insert(0,'time_period', Eco_AU['time_period'])