FutureWarning: The default value of numeric_only in DataFrame.corr is deprecated. In a future version, it will default to False. Select only valid columns or specify the value of numeric_only to silence this warning. corr_matrix = train_df.corr()
时间: 2024-03-18 16:38:39 浏览: 180
这个警告信息是因为在未来版本的pandas库中,默认值numeric_only将不再为True,而是将默认为False。在当前版本中,当numeric_only为True时,只有数值类型的列会被用于计算相关系数矩阵。如果你希望避免这个警告信息,可以显式地指定numeric_only参数的值,例如:
```python
corr_matrix = train_df.corr(numeric_only=True)
```
这样就可以避免该警告信息。但是,如果你的DataFrame中有非数值类型的列,且你希望在计算相关系数矩阵时将其包含进去,那么你需要将numeric_only设置为False,例如:
```python
corr_matrix = train_df.corr(numeric_only=False)
```
这样就可以计算所有类型的列的相关系数矩阵了。不过需要注意的是,如果你的DataFrame中包含非数值类型的列,那么计算相关系数矩阵可能是没有意义的。
相关问题
FutureWarning: The default value of numeric_only in DataFrame.std is deprecated. In a future version, it will default to False. In addition, specifying 'numeric_only=None' is deprecated. Select only valid columns or specify the value of numeric_only to silence this warning. std = df.std()
这是由于 pandas 库中 DataFrame.std() 方法的默认参数 numeric_only 在未来版本将默认为 False,因此建议在调用该方法时显式地指定 numeric_only 参数。
为了避免该警告,可以将代码中的 `df.std()` 改为 `df.std(numeric_only=True)`,即:
```python
import pandas as pd
def remove_empty_and_zero_std_columns(df):
# 去除全为空值的列
df = df.dropna(axis=1, how='all')
# 去除标准差为0的列
std = df.std(numeric_only=True)
zero_std_columns = std[std == 0].index.tolist()
df = df.drop(columns=zero_std_columns)
return df
```
这样就可以避免该警告了。
python 用df.resample( period ).sum()的时候提示:FutureWarning: The default value of numeric_only in DataFrameGroupBy.sum is deprecated. In a future version, numeric_only will default to False. Either specify numeric_only or select only columns which should be va
这个警告是因为在未来的版本中,DataFrameGroupBy.sum() 方法的 numeric_only 参数的默认值将会变为 False。而在当前版本中,numeric_only 默认为 True。因此,为了避免未来的问题,建议在使用 DataFrameGroupBy.sum() 方法时显式地指定 numeric_only 参数的值。
numeric_only 参数用于指定是否仅对数值型列进行求和。如果值为 False,则对所有列进行求和;如果值为 True,则仅对数值型列进行求和。
因此,可以将代码修改为以下形式:
```
df.resample(period).sum(numeric_only=True)
```
这样就可以避免出现警告信息了。
阅读全文