Pandas的corr和cov函数报错convert string to float

问题

如果数据中包含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))

即可解决。

Leave a Comment