按特定值填充缺失值 Pandas Dataframe
Filling Missing values Pandas Dataframe by specific value
我有一个数据集,我想用 bfill 向其添加一个字符串来填充 'value' 列中缺失的数据。这是我的代码:
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
我想要的输出是返回填充并看起来像这样:
value
0
1
1
25D
2
35D
3
2
4
3
5
1
6
3
7
85D
8
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
我有一个数据集,我想用 bfill 向其添加一个字符串来填充 'value' 列中缺失的数据。这是我的代码:
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
我想要的输出是返回填充并看起来像这样:
value
0
1
1
25D
2
35D
3
2
4
3
5
1
6
3
7
85D
8
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