替换数据框中的特定值

时间:2018-09-21 12:44:09

标签: python pandas dataframe

如何替换数据框中的特定值。例如,在下面的数据框中,我要替换以[AA,CB,EZ]开头的行,我要替换的值是''

   df = pandas.DataFrame({'A': ['AA','BB','CB','DD','EZ'],'B':[6,7,8,9,10],'C':[11,12,13,14,15]})
$ df
    A   B   C
 0  AA   6  11
 1  BB   7  12
 2  CB   8  13
 3  DD   9  14
 4  EZ  10  15

$ Expected Ouputdf
    A   B   C
 0  AA   
 1  BB   7  12
 2  CB     
 3  DD   9  14
 4  EZ    

1 个答案:

答案 0 :(得分:4)

您可以将布尔值掩码的值替换为空字符串,但会得到混合类型-具有数字和某些功能的字符串应失败:

class CreateJobsTable extends Migration
{

    public function up()
    {
        Schema::create('jobs', function (Blueprint $table) {
            $table->increments('id');
            $table->integer("user_id")->unsigned();
            $table->foreign('user_id')->references('id')->on('users');
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::drop('jobs');
    }
}

更好的是替换mask = df['A'].str.startswith(('AA','CB','EZ')) df.loc[mask, ['B', 'C']] = '' print (df) A B C 0 AA 1 BB 7 12 2 CB 3 DD 9 14 4 EZ 的值:

NaN

另一种解决方案:

df.loc[mask, ['B', 'C']] = np.nan
print (df)
    A    B     C
0  AA  NaN   NaN
1  BB  7.0  12.0
2  CB  NaN   NaN
3  DD  9.0  14.0
4  EZ  NaN   NaN