DataFrame相关

本文介绍了Python中Pandas库的DataFrame数据结构,包括如何构建DataFrame,数据选取的方法如按位置、列名、索引选择,以及DataFrame的统计操作如描述性统计、信息查看、空值统计和条件筛选。此外,还提到了分组统计和数据过滤等高级操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dataframe是python中pandas中的一种数据结构。类似于表的一种结构。

构建dataframe数据。
import pandas
import numpy as np
from pandas import DataFrame
?#df=DataFrame([[1,2,3],[4,5,6]])
df = DataFrame(data=np.arange(16).reshape(4,4),columns=list(‘abcd’))
这里写图片描述
DataFrame(data=np.arange(16).reshape(4,4),columns=list(‘abcd’),index=list(‘ABCD’))
这里写图片描述

数据选取
df[0:1] 选取第一行 按位置选取的 df[0] 这样是错误的的
df[‘a’] 选取第a列 按列名选取

df.loc[0] 按index选取行 df.loc[0:3]选取0,1,2行 df.loc[‘A’] 选取索引为A的行
df.loc[[‘A’],’a’] 行列一起选

df.iloc[0,2] 只能通过位置来选择,选择第一行第三列
df.iloc[0:3,1:3]通过位置切片来选择 可以选多的,也可以选中一个元素

df.at[1,’a’]通过名称来选择,只能选中一个
df.iat[1,2]通过位置来选择 只能选中一个

df.ix[1] 通过位置来选取行 df.ix[‘A’]通过索引选择行
df.ix[1,’a’] 同时选取行列,位置和索引都可以 可选中一个元素,也可以是多个

df选择后的数据基本都是dataframe结构,不能直接使用
使用df.values可以获取它的值

df.columns 输出列的信息

df.index 输出索引相关信息

df.describe() 会显示每一列的总数均值等
这里写图片描述
df.info() 显示基本的数据信息
df.count() df.mean() df.max() df.min() 统计每一列的统计量
df.head(10) 输出前10行 df.tail(10) 输出最后10行

df.isnull.sum() 按列统计表中的空值的数量
df.where(df>10).count() 按列统计 表中大于10的元素个数
df.groupby(‘y’).count() 根据y属性进行分组,统计每一组的分布情况

df[df[‘price’]<’7.2’] 把符合条件的行显示出来
df.where(df[‘price’]<’7.2’) 所有行都显示,不符合条件的price显示为nan

### 计算 Pandas DataFrame相关系数 Pandas 提供了多种方法来计算数据框中的相关系数。以下是一些常用的方法及其解释: #### 使用 `DataFrame.corr()` 方法 Pandas 的 `corr()` 方法可以用来计算数据框中列与列之间的相关系数。默认情况下,它使用的是皮尔逊(Pearson)相关系数[^4]。可以通过参数 `method` 来指定其他类型的相关系数。 ```python import pandas as pd import numpy as np # 创建一个随机数据框 df = pd.DataFrame(np.random.randint(0, 100, size=(100, 2)), columns=['A', 'B']) # 计算皮尔逊相关系数 pearson_corr = df.corr(method='pearson') print("Pearson Correlation Coefficient:") print(pearson_corr) # 计算斯皮尔曼相关系数 spearman_corr = df.corr(method='spearman') print("\nSpearman Correlation Coefficient:") print(spearman_corr) # 计算肯德尔相关系数 kendall_corr = df.corr(method='kendall') print("\nKendall Correlation Coefficient:") print(kendall_corr) ``` - **皮尔逊相关系数**:衡量两个变量的线性关系。 - **斯皮尔曼相关系数**:衡量两个变量的单调关系(不一定是线性的),基于秩次的计算[^1]。 - **肯德尔相关系数**:衡量两个变量的有序关系,适用于小样本或非正态分布的数据[^3]。 #### 结果解释 上述代码将生成一个矩阵形式的结果,其中每个元素表示两列之间的相关系数。例如,如果 `df.corr()` 返回如下结果: ``` A B A 1.000000 0.654321 B 0.654321 1.000000 ``` 这表明列 `A` 和 `B` 之间的相关系数为 `0.654321`。 #### 注意事项 - 如果数据框中包含非数值类型的列,则需要先进行处理或删除这些列,否则会引发错误。 - 缺失值(NaN)会被自动忽略,但过多的缺失值可能会影响结果的有效性。 --- #### 示例:结合 Scipy 计算单个相关系数 除了 Pandas 的内置方法,还可以使用 Scipy 库来单独计算某些相关系数。例如,计算斯皮尔曼相关系数时可以使用以下代码: ```python from scipy.stats import spearmanr # 假设 df 是一个 Pandas 数据框 x = df['A'] y = df['B'] # 计算斯皮尔曼相关系数和 p 值 spearman_corr, p_value = spearmanr(x, y) print(f"Spearman Correlation: {spearman_corr}, P-value: {p_value}") ``` --- #### 示例:计算协方差 协方差是衡量两个变量变化程度的一个指标。可以使用 `DataFrame.cov()` 方法来计算协方差矩阵[^4]: ```python cov_matrix = df.cov() print("Covariance Matrix:") print(cov_matrix) ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值