FutureWarning: Dropping of nuisance columns in DataFrame reductions (with 'numeric_only=None') is deprecated; in a future version this will raise TypeError. Select only valid columns before calling the reduction. inputs = inputs.fillna(inputs.mean())
时间: 2024-03-18 09:45:34 浏览: 32
这是一个警告信息,意思是在DataFrame的缩减操作中,如果不指定numeric_only参数,将来会出现TypeError错误。建议在进行缩减操作之前,先选择有效的列。在本段代码中,inputs.fillna(inputs.mean())的作用是用列的平均值填充缺失值。如果您想避免这个警告,可以在缩减操作之前选择有效的列,或者在缩减操作中指定numeric_only参数。
相关问题
FutureWarning: Dropping invalid columns in DataFrameGroupBy.mean is deprecated. In a future version, a TypeError will be raised. Before calling .mean, select only columns which should be valid for the function.
这个警告是由于在groupby之后,对数据进行了聚合操作,但是有些列不能被聚合,因此被忽略掉了。在将来的版本中,这些无效的列会导致TypeError异常的抛出。为了避免这个警告和将来的异常,我们需要在进行聚合操作之前,先将需要聚合的列筛选出来,例如:
```python
import pandas as pd
# 创建数据集
data = pd.DataFrame({'group':['A', 'B', 'C', 'A', 'B', 'C'],
'value':[1, 2, 3, 4, 5, 6],
'other_column':[7, 8, 9, 10, 11, 12]})
# 按照group列进行分组,并求每组的平均值
grouped_data = data.groupby('group')['value'].mean()
# 打印分组后的结果
print(grouped_data)
```
输出结果为:
```
group
A 2.5
B 3.5
C 4.5
Name: value, dtype: float64
```
上面的代码中,我们在进行groupby之前,先将需要聚合的列筛选出来,即`data.groupby('group')['value']`,然后再使用mean函数进行聚合操作,这样就避免了警告和将来的异常。
将这些代码转换为伪代码 # 确定目标变量和特征变量 target_col = ["Outcome"] cat_cols = data.nunique()[data.nunique() < 12].keys().tolist() cat_cols = [x for x in cat_cols] # numerical columns num_cols = [x for x in data.columns if x not in cat_cols + target_col] # Binary columns with 2 values bin_cols = data.nunique()[data.nunique() == 2].keys().tolist() # Columns more than 2 values multi_cols = [i for i in cat_cols if i not in bin_cols] # Label encoding Binary columns le = LabelEncoder() for i in bin_cols: data[i] = le.fit_transform(data[i]) # Duplicating columns for multi value columns data = pd.get_dummies(data=data, columns=multi_cols) # Scaling Numerical columns std = StandardScaler() scaled = std.fit_transform(data[num_cols]) scaled = pd.DataFrame(scaled, columns=num_cols) # dropping original values merging scaled values for numerical columns df_data_og = data.copy() data = data.drop(columns=num_cols, axis=1) data = data.merge(scaled, left_index=True, right_index=True, how="left") # 输出预处理后的数据集 print(data.head())
以下是转换为伪代码后的代码:
```
# 确定目标变量和特征变量
target_col = ["Outcome"]
cat_cols = 对数据集进行唯一值计数并筛选小于12的特征
cat_cols = [x for x in cat_cols]
# 数值型特征
num_cols = [x for x in 数据集的列名 if x not in cat_cols + target_col]
# 二分类特征
bin_cols = 对数据集进行唯一值计数并筛选等于2的特征
# 多分类特征
multi_cols = [i for i in cat_cols if i not in bin_cols]
# Label encoding 二分类特征
le = LabelEncoder()
for i in bin_cols:
对二分类特征进行标签编码
# 独热编码 多分类特征
data = pd.get_dummies(data=data, columns=multi_cols)
# 标准化 数值型特征
std = StandardScaler()
scaled = std.fit_transform(data[num_cols])
scaled = pd.DataFrame(scaled, columns=num_cols)
# 合并特征
df_data_og = data.copy()
data = data.drop(columns=num_cols, axis=1)
data = data.merge(scaled, left_index=True, right_index=True, how="left")
# 输出预处理后的数据集
print(data.head())
```
以上伪代码是对原 Python 代码的简化和抽象,将其转化为了一系列的操作和方法调用。