我正在学习如何在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>
答案 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()
仅适用于数字数据类型列。您需要将值M
和F
替换为例如:
crime_data['Gender'] = crime_data['Gender'].replace('M',1).replace('F',0)