我是靠谱客的博主 花痴翅膀,这篇文章主要介绍Python读取CSV成数据框并进行筛选和相关性检验,现在分享给大家,希望可以做个参考。

一、第一种方法读取后为list,再转化为数据框

复制代码
1
2
3
4
5
6
7
8
9
10
import csv from pandas.core.frame import DataFrame csv_file=csv.reader(open('合并.csv','r')) content=[] #用来存储整个文件的数据,存成一个列表,列表的每一个元素又是一个列表,表示的是文件的某一行 for line in csv_file: #print(line) #打印文件每一行的信息 content.append(line) data=DataFrame(content)#转换成数据框 print(data[["身份证号"]])

二、直接用pandas读取成数据框,一句话搞定

复制代码
1
2
data =pd.read_csv('D://paper//Python_test//绘图//合并.csv',header=0,index_col=2, encoding= "gbk")

设置第1行为行索引,第3列为列索引,由于文件中含有中文,因此编码格式为"gbk"

数据框类型便可以直接按行按列取值了

三、按行取值,即取某一列或多列

取列索引为 “策略类别” 和 "学习策略(原始分)"的两列,

复制代码
1
2
df22 =data1[["策略类别","学习策略(原始分)"]]

当然行索引也会在其中,去除索引列的方法就是再套一层:

复制代码
1
2
x2 = df22[["学习策略(原始分)"]]["学习策略(原始分)"]

四、按列的值筛选

按一列的值进行筛选,比如筛选四年级的所有学生的分数

复制代码
1
2
df = data.loc[data['年级']== 4 ]

按两列值进行筛选

复制代码
1
2
df4 = df.loc[(df['策略类别'] == "A" )&(df['语文类别'] == "B" )]

五、对列求相关系数矩阵

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 计算各变量之间的相关系数 corr = data.corr() # print(corr) # r的显著性检验 # 各个相关系数检验的统计量 def r_test_statistic(r, n): if r==1: return 0 else: a = abs(r) b = np.sqrt((n-2) / (1-r**2)) c = a*b return c # 计算各个相关系数检验的统计量 corr_test_stat = corr.applymap(lambda x:r_test_statistic(x, len(data))) print(corr_test_stat) # 根据显著性水平0.05和自由度n-2=25-2=23, 计算t分布临界值 alpha = 0.01 t_score = scipy.stats.t.isf(alpha/2, df = len(data)-2) print(t_score)

具体实例可参考:
https://blog.csdn.net/qq_39284106/article/details/104106864

最后

以上就是花痴翅膀最近收集整理的关于Python读取CSV成数据框并进行筛选和相关性检验的全部内容,更多相关Python读取CSV成数据框并进行筛选和相关性检验内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部