我无法使用pd.update()
函数更新熊猫Dataframe
,我总是得到None
结果。
我使用的是带有键的Dataframe
,这是连接2Dataframes
的结果。你知道吗
我只为float32
列计算z1 score
,然后用float32
列的新值更新Dataframe
。你知道吗
class MySimpleScaler(object):
def __init__(self):
self._means = None
self._stds = None
def preprocess(self, data):
"""Calculate z-score for dataframe"""
if self._means is None: # During training only
self._means = data.select_dtypes('float32').mean()
if self._stds is None: # During training only
self._stds = data.select_dtypes('float32').std()
if not self._stds.all():
raise ValueError('At least one column has standard deviation of 0.')
z1 = (data.select_dtypes('float32') - self._means) / self._stds
return data.update(z1)
all_x = pd.concat([train_x, eval_x], keys=['train', 'eval'])
scaler = MySimpleScaler()
all_x = scaler.preprocess(all_x)
train_x, eval_x = all_x.xs('train'), all_x.xs('eval')
当我运行data.update(z1)
时,它总是返回None
。你知道吗
稍后我需要重用scaler对象来计算新数据帧的z分数。你知道吗
数据帧^{} 是就地操作。它总是返回
None
,但是数据帧将被修改。你知道吗如果添加到集合中,则执行就地操作,返回
None
。序列将被更新,但返回的副本将是None
。你知道吗相关问题 更多 >
编程相关推荐