熊猫dataframe.corr()从输入中剥离列

时间:2019-05-01 23:50:15

标签: python python-3.x pandas

我正在学习如何在python3中使用pandas库,并且遇到了dataframe.corr()问题

这是我的数据集的一个示例

Date,Gender,Age at Booking,Current Age
2015-12-23,M,21,22
2015-12-23,M,25,25
2015-12-23,M,37,37
2015-12-23,F,39,40
2015-12-23,M,24,24

这是我尝试加载/转换它的方式

crime_data = pd.read_csv(crime_data_s)
print(crime_data.head())
print(crime_data['Date'])
correlated_data = crime_data.corr()
print(correlated_data)

打印犯罪数据头显示4列以及一些相关数据,访问列'Date'并打印其值可以按预期工作,但是当调用crime_data.corr()并且我打印数据时,它去除了所有其他项因此,“预订年龄”和“当前年龄”会变成2x2。

调用dataframe.info()方法,我可以看到日期和性别列被标记为对象而不是相关数据,可以解决此问题,以便尝试对数据进行关联吗? / p>

2 个答案:

答案 0 :(得分:1)

data['Gender']=data['Gender'].astype('category').cat.codes
data['Date']=data['Date'].astype('category').cat.codes
data.corr()

输出

       Date  Gender    Age        curage
Date   NaN   NaN       NaN        NaN
Gender NaN 1.000000 0.162804 -0.703474
Age    NaN -0.162804 1.000000 0.814425
curage NaN -0.703474 0.814425 1.000000

答案 1 :(得分:0)

这是因为.corr()仅适用于数字数据类型列。您需要将值MF替换为例如:
crime_data['Gender'] = crime_data['Gender'].replace('M',1).replace('F',0)