问题
如果数据中包含string列,在版本2.0.0之后,直接用df.corr()和df.cov()会报错。
代码:
import pandas as pd
print(pd.__version__)
df = pd.read_csv("./Telco-Customer-Churn.csv")
print(df.head(3))
print(df.corr())
报错信息:
ValueError: could not convert string to float: '7590-VHVEG'
来自官网文档的变更:
Changed in version 2.0.0: The default value of numeric_only is now False.
文档地址:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html
解决方法
如下的corr和cov函数,都加一个参数:numeric_only=True即可
print(df.corr(numeric_only=True))
print(df.cov(numeric_only=True))
即可解决。