作者:ub皓祉 | 来源:互联网 | 2023-09-14 19:00
执行下面代码时报错:ValueError:fillvaluemustbeincategoriesimportpandasaspd;importnumpyasnp;
执行下面代码时报错:ValueError: fill value must be in categories
import pandas as pd;
import numpy as np;df = pd.DataFrame({'a':[1, 2, 3, 4], 'b':['d', 'e', 'f', None]}, dtype='category');
print(df)df['b'].fillna('k', inplace=True);
print(df)
修正:
import pandas as pd;
import numpy as np;df = pd.DataFrame({'a':[1, 2, 3, 4], 'b':['d', 'e', 'f', None]}, dtype='category');
print(df)df['b'] = df['b'].cat.add_categories(['k']);
df['b'].fillna('k', inplace=True);
print(df)
原因:
对于数据类型为category的“b”,fillna函数所填充的值需要已经存在于‘b’中。这句话df['b'] = df['b'].cat.add_categories(['k']);
表示在’b’列中新添一个类别k。
结束!