概述
一、第一种方法读取后为list,再转化为数据框
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读取成数据框,一句话搞定
data =pd.read_csv('D://paper//Python_test//绘图//合并.csv',header=0,index_col=2, encoding= "gbk")
设置第1行为行索引,第3列为列索引,由于文件中含有中文,因此编码格式为"gbk"
数据框类型便可以直接按行按列取值了
三、按行取值,即取某一列或多列
取列索引为 “策略类别” 和 "学习策略(原始分)"的两列,
df22 =data1[["策略类别","学习策略(原始分)"]]
当然行索引也会在其中,去除索引列的方法就是再套一层:
x2 = df22[["学习策略(原始分)"]]["学习策略(原始分)"]
四、按列的值筛选
按一列的值进行筛选,比如筛选四年级的所有学生的分数
df = data.loc[data['年级']== 4 ]
按两列值进行筛选
df4 = df.loc[(df['策略类别'] == "A" )&(df['语文类别'] == "B" )]
五、对列求相关系数矩阵
# 计算各变量之间的相关系数
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成数据框并进行筛选和相关性检验所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复