Pandas设置了多行数据帧

时间:2016-11-08 05:45:18

标签: python pandas

我使用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'对象不可订阅

2 个答案:

答案 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]