按特定值填充缺失值Pandas Dataframe

时间:2018-03-01 14:49:43

标签: python pandas dataframe fillna

我有一个数据集,我想填写列中的缺失数据' value'用bfill添加一个字符串。这是我的代码:

<script src="https://unpkg.com/vue@2.5.13/dist/vue.js"></script>

<template id="axCheckboxTemplate">
  <div class="checkBox-container">
    <input type="checkbox" :checked="isChecked" @change="updateIsChecked" />
    <div class="check" :class="[size]" @click="updateIsChecked">
      CLICK ME<div v-if="isChecked">v</div>
    </div>
    <label class="label">{{label}}</label><span class="subLabel">{{subLabel}}</span>
  </div>
</template>

<div id="app">
  <div class="filters">
    <pre>parent's myCheckedValueSync: {{ myCheckedValueSync }}</pre>
    <ax-checkbox label="Où :" sub-label="Ville" size="small" :is-checked.sync="myCheckedValueSync">
    </ax-checkbox>
      
    <pre>parent's myCheckedValueVModel: {{ myCheckedValueVModel }}</pre>
    <ax-checkbox label="Quoi :" sub-label="Thématique(s)" size="small" v-model="myCheckedValueVModel">
    </ax-checkbox>
  </div>
</div>

我从这段代码得到的输出是:

import pandas as pd
import numpy as np 
df = pd.DataFrame(
    {
        'category': ['X', 'X', 'X', 'X', 'X', 'X', 'Y', 'Y', 'Y'],
        'name': ['A','A', 'B','B','B','B', 'C','C','C'],
        'other_value': [10, np.nan, np.nan, 20, 30, 10, 30, np.nan, 30],
        'value': [1, np.nan, np.nan, 2, 3, 1, 3, np.nan, 3],
    }
)
print(df)

def fillValue(g):

    gNotNull = g.dropna()
    wtAvg = str(gNotNull[0])+'5D'
    return g.fillna(wtAvg)



ff=pd.DataFrame()
ff["value"] = df['value'].transform(fillValue)
ff

我想要的输出是回来填充,看起来像这样:

value
0
1 
1
1.05D 
2
1.05D 
3
2 
4
3 
5
1 
6
3 
7
1.05D 
8
3 

如果有人能提供帮助,我感激不尽。 感谢

1 个答案:

答案 0 :(得分:3)

IIUC

s=df.value.bfill()
s.loc[df.value.isnull()]=s.astype(int).astype(str)+'5D'
s
Out[771]: 
0      1
1    25D
2    25D
3      2
4      3
5      1
6      3
7    35D
8      3
Name: value, dtype: object