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 17:39:54 浏览: 274
这个警告是因为在pandas中DataFrame.corr()方法的numeric_only参数的默认值将在未来版本中更改为False。numeric_only参数用于指定是否仅计算数值列之间的相关性。在当前版本中,numeric_only默认为True,只计算数值类型的列之间的相关性。但是,在未来的版本中,numeric_only的默认值将更改为False,表示将计算所有列之间的相关性。为了消除这个警告,建议在调用DataFrame.corr()方法时,明确指定numeric_only参数的值,例如:
```python
corr_matrix = train_df.corr(numeric_only=True)
```
或者
```python
corr_matrix = train_df.corr(numeric_only=False)
```
根据具体情况选择。如果你确定你的DataFrame中只包含数值类型的列,可以将numeric_only参数设置为True以避免这个警告。
相关问题
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)
```
这样就可以避免出现警告信息了。
阅读全文