我使用read_csv
并希望删除一些具有特定值的行,我可以在单独的行中做得很好,但是当我想在同一行中调用它们时,它会返回NoneType
错误
我的第一个代码:
census_df = pd.read_csv('census.csv')
census_df.drop(census_df['SUMLEV'] == 40, inplace=True)
我想做:
census_df = (pd.read_csv('census.csv')
.drop(census_df['SUMLEV'] == 40, inplace=True))
它返回了一个错误:
TypeError:'NoneType'对象不可订阅
答案 0 :(得分:1)
原因是如果指示在原地执行(如内部运营商所建议的那样),则drop返回None。删除操作符(这会产生一些内存和处理成本)或者分成两行。
答案 1 :(得分:1)
我认为您需要从index
开始boolean indexing
:
census_df = ( pd.read_csv('census.csv').drop(census_df[(census_df['SUMLEV'] == 40)].index) )
但更好的是使用boolean indexing
:
census_df = pd.read_csv('census.csv')
census_df = census_df[census_df['SUMLEV'] != 40]