一、第一种方法读取后为list,再转化为数据框
复制代码
1
2
3
4
5
6
7
8
9
10import 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
2data =pd.read_csv('D://paper//Python_test//绘图//合并.csv',header=0,index_col=2, encoding= "gbk")
设置第1行为行索引,第3列为列索引,由于文件中含有中文,因此编码格式为"gbk"
数据框类型便可以直接按行按列取值了
三、按行取值,即取某一列或多列
取列索引为 “策略类别” 和 "学习策略(原始分)"的两列,
复制代码
1
2df22 =data1[["策略类别","学习策略(原始分)"]]
当然行索引也会在其中,去除索引列的方法就是再套一层:
复制代码
1
2x2 = df22[["学习策略(原始分)"]]["学习策略(原始分)"]
四、按列的值筛选
按一列的值进行筛选,比如筛选四年级的所有学生的分数
复制代码
1
2df = data.loc[data['年级']== 4 ]
按两列值进行筛选
复制代码
1
2df4 = 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成数据框并进行筛选和相关性检验内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复